Witam, pisze mały programik, mój problem polega na tym ze gdy włączam program i rozwijam menu wszystko działa, jednak gdy przycisnę przycisk(narysuje kółko lub krzyżyk- to jest właśnie ta gra :D) menu bar nie rozwija, chowa się tak jakby za panele .
tutaj kod skrócony jak tylko sie da zeby pokazac problem:
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
public class KolkoKrzyzyk extends JFrame implements ActionListener {
Panel etyk = new Panel();
Panel Dol = new Panel();
Label lab;
Label lab2;
int linia=0;
public Component p1;
public Component p2;
public Container p;
String kto = ("O");
int fontSize=40;
public Font font=new Font("Helvetica", Font.BOLD, fontSize);
public Font font2=new Font("Helvetica", Font.HANGING_BASELINE, 100);
String gracz="p1";
String ruch="ruch oddaje: ";
public KolkoKrzyzyk(){
JMenuBar menu = new JMenuBar();
JMenu Informacje = new JMenu ("Informacje");
JMenuItem InformacjeItem1 = new JMenuItem("Zasady gry");
JMenuItem InformacjeItem2 = new JMenuItem("Wersja");
JMenuItem InformacjeItem3 = new JMenuItem("Autor");
Informacje.add(InformacjeItem1);
Informacje.addSeparator();
Informacje.add(InformacjeItem2);
Informacje.addSeparator();
Informacje.add(InformacjeItem3);
menu.add(Informacje);
setJMenuBar(menu);
InformacjeItem3.addActionListener(this);
lab2 = new Label(ruch+gracz);
lab2.setBackground(Color.LIGHT_GRAY);
lab2.setForeground(Color.black);
lab2.setAlignment(Label.LEFT);
lab2.setFont(font);
Dol.setLayout(new GridLayout(1,5,1,5));
Dol.add(lab2);
add(Dol, BorderLayout.SOUTH);
setSize(450, 450);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
p = new Panel();
p.setLayout(new GridLayout(3, 3, 10, 10));
p.setBackground(Color.black);
add(p, BorderLayout.WEST);
p1 = (new Button(" "));
p2 = (new Button(" "));
p1.setBackground(Color.white);
p2.setBackground(Color.white);
p1.setFont(font2);
p2.setFont(font2);
p.add(p1);
p.add(p2);
((Button)p1).setActionCommand("p1");
((Button)p1).addActionListener(this);
((Button)p2).setActionCommand("p2");
((Button)p2).addActionListener(this);
Container cp = getContentPane();
cp.add(p);
setVisible(true);
}
public static void main(String[] args) {
new KolkoKrzyzyk();
}
public void actionPerformed(ActionEvent zrodlo) {
String polecenie = zrodlo.getActionCommand();
String cmd= zrodlo.getActionCommand();
if("Autor".equals(cmd))
JOptionPane.showMessageDialog(this, "Lewy2905","autor", JOptionPane.INFORMATION_MESSAGE);
if (polecenie.equals("p1")) {
((Button)p1).setLabel(kto);
((Button)p1).removeActionListener(this);
if (kto=="X"){
gracz ="p1";
lab2.setText(ruch+gracz);
kto = "O";
}else {
gracz= "p2";
lab2.setText(ruch+gracz);
kto = "X";
repaint();
}
} else if (polecenie.equals("p2")) {
((Button)p2).setLabel(kto);
((Button)p2).removeActionListener(this);
if (kto=="X"){
gracz ="p1";
lab2.setText(ruch+gracz);
kto = "O";
}else {
gracz= "p2";
lab2.setText(ruch+gracz);
kto = "X";
repaint();
}
}
}
}