Hallo,
ich habe eine Frage bezüglich ein Image auf einem JPanel darzustellen. Und zwar habe ich die 2 unteren Klassen.
Ich der main- Funktion erzeuge ich mein Fenster. Im Konstruktor wird dann ein JPanel und ein JButton hinzugefügt.
Weiters soll ein Image auf dem Panel erscheinen, aber es wird nur ein ca. 5*5 Pixel großes Bild gezeichnet wenn ich panelHMI.setLayout(null); auskommentiere -> keine Ahnung ob es hierbei um mein Image handelt. Das JPanel muss unbedingt das null-Layout haben und wenn ich
panelHMI.setLayout(null); schreibe, dann ist kein Bild mehr zu sehen.
Kann mir da jemand einen Tipp geben, wie ich das Image auf das JPanel (mit null- Layout) bekomme.
Vielen DANK!!!
lg
Stefan
ich habe eine Frage bezüglich ein Image auf einem JPanel darzustellen. Und zwar habe ich die 2 unteren Klassen.
Ich der main- Funktion erzeuge ich mein Fenster. Im Konstruktor wird dann ein JPanel und ein JButton hinzugefügt.
Weiters soll ein Image auf dem Panel erscheinen, aber es wird nur ein ca. 5*5 Pixel großes Bild gezeichnet wenn ich panelHMI.setLayout(null); auskommentiere -> keine Ahnung ob es hierbei um mein Image handelt. Das JPanel muss unbedingt das null-Layout haben und wenn ich
panelHMI.setLayout(null); schreibe, dann ist kein Bild mehr zu sehen.
Kann mir da jemand einen Tipp geben, wie ich das Image auf das JPanel (mit null- Layout) bekomme.
Vielen DANK!!!
lg
Stefan
Code:
public class MainFrame extends JFrame {
private Image hintergrundBild;
public MainFrame()
{
super("HauptFrame");
hintergrundBild = getToolkit().getImage(System.getProperty("user.dir") + "\\hintergrundBild.png");
MediaTracker mt = new MediaTracker(this);
mt.addImage(hintergrundBild, 0);
try {
mt.waitForAll();
}
catch (InterruptedException e)
{
}
JPanel panelHMI = new JPanel();
panelHMI.setLayout(null);
panelHMI.setBackground(Color.LIGHT_GRAY);
panelHMI.setBounds(10, 10, 575, 575);
panelHMI.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
panelHMI.add(new BildPanel(hintergrundBild));
add(panelHMI);
JButton button = new JButton("Test");
button.setBackground(Color.LIGHT_GRAY);
button.setBounds(100, 200, 40, 20);
button.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
add(button);
}
public static void main(String args[])
{
MainFrame mainFrame = new MainFrame();
mainFrame.setSize(600, 630);
mainFrame.setLocation(200, 20);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setLayout(null);
mainFrame.setVisible(true);
}
}
class BildPanel extends JPanel{
private Image hintergrundBild;
public BildPanel(Image hintergrundBild)
{
this.hintergrundBild = hintergrundBild;
}
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawImage(hintergrundBild,10,40,20,20,this);
}
}