Hey,
ich hätte gerne ein ganz normales Fenster mit einem Hintergrundbild, auf dem drei Buttons postioniert sind..
Jedoch funktioniert das nicht.
Hier mein Code:
wenn ich die Zeile jFrame.add(jLabelBild, BorderLayout.NORTH); weglasse, werden die Buttons ganz normal angezeigt. Doch so wird nur ein Button angezeigt und die anderen beiden erst wenn ich mit der Maus drüber fahre.
Ich hatte auch schon versucht den Hintergrund, anstatt in ein Label zu setzen mit der paintComponent zu zeichnen, aber das funktioniert leider noch weniger.
Hat einer eine Idee, was ich falsch machen könnte?
Viele Grüße
ich hätte gerne ein ganz normales Fenster mit einem Hintergrundbild, auf dem drei Buttons postioniert sind..
Jedoch funktioniert das nicht.
Hier mein Code:
Code:
package implementation;
import java.awt.*;
import java.awt.event.*;
import java.net.URL;
import javax.swing.*;
public class Test{
private JLabel jLabelBild;
private final JFrame jFrame;
private JPanel p2;
private JButton schliessen, links, rechts;
private URL u;
public Test(){
jFrame= new JFrame("... Test ...");
jFrame.setPreferredSize(new Dimension(500,400));
Dimension resolution = Toolkit.getDefaultToolkit().getScreenSize();
u= getClass().getClassLoader().getResource("Bilder/anleitung1.png");
jLabelBild = new JLabel();
jLabelBild.setIcon(new ImageIcon(u));
schliessen = new JButton("schließen");
links = new JButton("<<");
rechts = new JButton(">>");
schliessen.addActionListener(new ActionListener() {
public void actionPerformed (ActionEvent e) {
jFrame.dispose();
}
});
links.addActionListener(new ActionListener() {
public void actionPerformed (ActionEvent e) {
}
});
rechts.addActionListener(new ActionListener() {
public void actionPerformed (ActionEvent e) {
URL u= getClass().getClassLoader().getResource("Bilder/anleitung2.png");
jLabelBild.setIcon(new ImageIcon(u));
jFrame.add(jLabelBild);
jFrame.add(p2,BorderLayout.SOUTH);
jFrame.repaint();
}
});
p2= new JPanel(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.insets = new Insets(300,0,12,85);
p2.add(links,c);
c.insets = new Insets(300,0,12,0);
p2.add(schliessen,c);
c.insets = new Insets(300,85,12,0);
p2.add(rechts,c);
jFrame.add(jLabelBild, BorderLayout.NORTH);
jFrame.add(p2,BorderLayout.SOUTH);
jFrame.repaint();
jFrame.setResizable(false);
jFrame.setVisible(true);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setLocation((resolution.width - jFrame.getSize().width)/4,
(resolution.height - jFrame.getSize().height)/4);
jFrame.pack();
}
public static void main(String[] args) {
new Test();
}
}
wenn ich die Zeile jFrame.add(jLabelBild, BorderLayout.NORTH); weglasse, werden die Buttons ganz normal angezeigt. Doch so wird nur ein Button angezeigt und die anderen beiden erst wenn ich mit der Maus drüber fahre.
Ich hatte auch schon versucht den Hintergrund, anstatt in ein Label zu setzen mit der paintComponent zu zeichnen, aber das funktioniert leider noch weniger.
Hat einer eine Idee, was ich falsch machen könnte?
Viele Grüße