T
ToGross
Gast
Also ich habe folgendes Problem:
Fehlerbeschreibung:
frame.setbackground(image); geht genau so, wie ich mir das vorgestellt habe, aber sobald ich die paint-Methode aufrufe blinkt der Text kurz auf und verschwindet wieder.
Ich vermute mal, dass JPanel (panel) in das ich das Hintergrundbild zeichne wieder in den Vordergrund rückt.
Irgendwelche lösungsvorschläge?
Muss ich den Text der paint-Methode auf mein JPanel (panel) zeichnen?
PS: Ich hoffe ich habe mein Problem im richtigen Forum geschrieben. Handelt sich ja fast nur um java.awt
Code:
public class testframe {
public static void main(String[] args) throws Exception{
MyFrame frame = new MyFrame();
...
// Hintergrundbild zeichnen
frame.setbackground(image);
// Eigenschaften von frame setzen
frame.setUndecorated(true);
frame.setExtendedState(frame.MAXIMIZED_BOTH);
frame.setVisible(true);
// Text im Frame zeichnen - FEHLER
frame.paint(frame.getGraphics(),"test",400,400,Color.red,"Arial-BOLD-40");
}
}
Code:
public class MyFrame extends JFrame implements KeyListener{
public void setbackground(String URL){
JScrollPane scrollPane;
final ImageIcon icon = new ImageIcon(URL);
Image image;
Dimension d = getSize();
JPanel panel = new JPanel()
{
protected void paintComponent(Graphics g)
{
// Dispaly image in max. size
g.drawImage(icon.getImage(), 0, 0, null);
super.paintComponent(g);
}
};
panel.setOpaque( false );
panel.setPreferredSize(new Dimension(d.width,d.height));
scrollPane = new JScrollPane( panel );
getContentPane().add( scrollPane );
}
public void setbackground(BufferedImage img){
JScrollPane scrollPane;
final ImageIcon icon = new ImageIcon(img);
Image image;
Dimension d = getSize();
JPanel panel = new JPanel()
{
protected void paintComponent(Graphics g)
{
g.drawImage(icon.getImage(), 0, 0, null);
super.paintComponent(g);
}
};
panel.setOpaque( false );
panel.setPreferredSize(new Dimension(d.width,d.height));
scrollPane = new JScrollPane( panel );
getContentPane().add( scrollPane );
}
public void keyPressed(KeyEvent event){
}
public void keyReleased(KeyEvent event){
}
public void keyTyped(KeyEvent event){
}
public void paint(Graphics g,String text,int x, int y, Color color, String font){
{
g.setFont(Font.decode(font));
g.setColor(color);
g.drawString(text,x,y);
super.paint(g);
}
}
}
Fehlerbeschreibung:
frame.setbackground(image); geht genau so, wie ich mir das vorgestellt habe, aber sobald ich die paint-Methode aufrufe blinkt der Text kurz auf und verschwindet wieder.
Ich vermute mal, dass JPanel (panel) in das ich das Hintergrundbild zeichne wieder in den Vordergrund rückt.
Irgendwelche lösungsvorschläge?
Muss ich den Text der paint-Methode auf mein JPanel (panel) zeichnen?
PS: Ich hoffe ich habe mein Problem im richtigen Forum geschrieben. Handelt sich ja fast nur um java.awt