1
我有三個不同的JRadioButtons都被添加到一個JPanel。當我將JPanel添加到JFrame中時,只有lvl3 JRadioButton顯示出來。如果我將該行註釋掉,則不顯示任何按鈕。有什麼我在幹嗎?或者我應該使用JRaduiButtonGroups?隱形JRadioButtons
import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.util.Timer;
public class CastleDefenders {
static Timer timer;
Toolkit tlkt;
private JMenuBar mb2 = new JMenuBar();
private static boolean startGame = false;
private static JFrame f = new JFrame("Castle Defenders");
private static JFrame g = new JFrame("Castle Defenders");
private JRadioButton lvl1 = new JRadioButton("Easy");
private JRadioButton lvl2 = new JRadioButton("Normal");
private JRadioButton lvl3 = new JRadioButton("Hard");
private JPanel pnl = new JPanel();
private JTextField lbl = new JTextField("Welcome to Castle Defenders!");
private JButton btn = new JButton("START");
private JMenuBar mb = new JMenuBar();
private JMenu mnuFile = new JMenu("File");
private JPanel pnl2 = new JPanel();
private JMenuItem mnuItemQuit = new JMenuItem("Quit");
private JMenu mnuHelp = new JMenu("Help");
private JMenuItem mnuItemAbout = new JMenuItem("About");
public CastleDefenders(){
lvl1.setToolTipText("Play the game on Easy");
lvl2.setToolTipText("Play the game on Normal");
lvl3.setToolTipText("Play the game on Hard");
pnl2.add(lvl1);
pnl2.add(lvl2);
pnl2.add(lvl3);
tlkt = Toolkit.getDefaultToolkit();
timer = new Timer();
pnl2.setBounds(50, 5, 1, 10);
btn.setBounds(220, 240, 5, 1);
f.setJMenuBar(mb2);
g.setJMenuBar(mb2);
mnuFile.add(mnuItemQuit);
mnuHelp.add(mnuItemAbout);
mb.add(mnuFile);
mb.add(mnuHelp);
mb2.add(mnuFile);
mb2.add(mnuHelp);
pnl.add(btn);
pnl2.add(lbl);
lbl.setBounds(0, 240, 10, 2);
lbl.setEditable(false);
f.getContentPane().setLayout(new BorderLayout());
f.getContentPane().add(pnl, BorderLayout.CENTER);
f.addWindowListener(new ListenCloseWdw());
g.getContentPane().setLayout(new BorderLayout());
g.getContentPane().add(pnl2);
g.addWindowListener(new ListenCloseWdw());
mnuItemAbout.addActionListener(new GetAboutInfo());
btn.addActionListener(new GetButtonClick());
mnuItemQuit.addActionListener(new ListenMenuQuit());
}
public class GetButtonClick implements ActionListener{
public void actionPerformed(ActionEvent e){
startGame = true;
//JOptionPane.showMessageDialog(null, "WIP");
}
}
public class GetAboutInfo implements ActionListener{
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null, "Made By Byron Lathi");
}
}
public class ListenCloseWdw extends WindowAdapter{
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
public class ListenMenuQuit implements ActionListener{
public void actionPerformed(ActionEvent e){
System.exit(0);
}
}
public void launchFrameF(){
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setBounds(0, 0, 640, 680);
}
public void launchFrameG(){
g.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
g.pack();
g.setBounds(0, 0, 640, 680);
g.getContentPane().add(lvl1).setBounds(1, 1, 1, 1);
g.getContentPane().add(lvl2).setBounds(2, 2, 1, 1);
g.getContentPane().add(lvl3).setBounds(3, 3, 1/2, 1/2);
}
public static void main(String args[]) {
final CastleDefenders main = new CastleDefenders();
main.launchFrameF();
f.setVisible(true);
do {
System.out.print("");
}while(startGame == false);
if (startGame == true){
JOptionPane.showMessageDialog(null, "We've come so far...");
f.setVisible(false);
main.launchFrameG();
g.setVisible(true);
}
}
}
非常感謝!我沒有注意到我加了兩次。我有一個問題:如果我將它添加到JRadioButtonList,那麼我可以刪除單個按鈕並添加一個列表嗎?謝謝你的回覆,這是我的第一篇文章。 – user2272549