Also ich habe in einem JFrame eine JMenuBar und will unter dieser JMenuBar ein Image positionieren.
Wenn ich das ganze mit paint() mache, dann sieht man keine JMenuBar mehr. Jetzt habe ich gelesen, dass man das ganze mit paintComponents() machen muss. Jetzt habe ich zwar ein Menü, aber kein Bild.
Ich poste einmal den Code, hoffentlich kann mir jemand helfen.
Wenn ich das ganze mit paint() mache, dann sieht man keine JMenuBar mehr. Jetzt habe ich gelesen, dass man das ganze mit paintComponents() machen muss. Jetzt habe ich zwar ein Menü, aber kein Bild.
Ich poste einmal den Code, hoffentlich kann mir jemand helfen.
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Muehle extends JFrame implements ActionListener{
// Anfang Variablen
/* Allgemein
****************/
public JPanel jpn = new JPanel();
/* Menü
****************/
public JMenuBar menuBar = new JMenuBar();
public JMenu datei = new JMenu("Datei");
public JMenu options = new JMenu ("Optionen");
public JMenuItem miNewConnect = new JMenuItem("Neu Verbinden");
public JMenuItem miClose = new JMenuItem("Beenden");
public JMenuItem miNewStart = new JMenuItem("Neu beginnen");
// Ende Variablen
public Muehle(String title) {
// Frame-Initialisierung
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) { System.exit(0); } });
setDefaultCloseOperation(EXIT_ON_CLOSE);
int frameWidth = 500;
int frameHeight = 550;
setSize(frameWidth, frameHeight);
Container cp = getContentPane();
cp.setLayout(null);
// Anfang Komponenten
/* Menü
****************/
setJMenuBar(menuBar);
//Positionieren der Elemente:
menuBar.add(datei);
menuBar.add(options);
datei.add(miNewConnect);
datei.addSeparator();
datei.add(miClose);
datei.setMnemonic('D');
options.add(miNewStart);
// Eigenschaften einstellen
miNewConnect.setAccelerator(KeyStroke.getKeyStroke('C',KeyEvent.CTRL_MASK + KeyEvent.ALT_MASK));
miNewConnect.setMnemonic('V');
miClose.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F4,KeyEvent.ALT_MASK));
miClose.setMnemonic('B');
options.setMnemonic('O');
miNewStart.setAccelerator(KeyStroke.getKeyStroke('N',KeyEvent.CTRL_MASK + KeyEvent.ALT_MASK));
miNewStart.setMnemonic('N');
// Aktionen zuweisen:
miNewConnect.addActionListener(this);
miClose.addActionListener(this);
miNewStart.addActionListener(this);
// Ende Komponenten
setVisible(true);
}
// Anfang Ereignisprozeduren
public void actionPerformed (ActionEvent e) {
if(e.getActionCommand().equals("Beenden")){
dispose();
}
System.out.println("Menüauswahl --> "
+ ((JMenuItem)e.getSource()).getActionCommand());
}
// Ende Ereignisprozeduren
public void paint( Graphics g ) {
g = getGraphics();
Image img_brett = Toolkit.getDefaultToolkit().getImage("Mühle2.jpg");
g.drawImage (img_brett, 0,0, 500, 500,this);
repaint();
}
public static void main(String[] args) {
new Muehle("Mühle");
}
}
class Spielstein{
private byte ring; // siehe oben
private byte platz; // ----"-----
private boolean farbe; // 0 = weiß, 1 = schwarz
public Spielstein(byte ring, byte platz, boolean farbe){
this.ring = ring;
this.platz = platz;
this.farbe = farbe;
}
public void setRing (byte ring){
this.ring = ring;
}
public void setPlatz (byte platz){
this.platz = platz;
}
public void setFarbe (boolean farbe){
this.farbe = farbe;
}
public byte getRing (){
return this.ring;
}
public byte getPlatz (){
return this.platz;
}
public boolean getFrabe (){
return this.farbe;
}
}