0
所以我創建了一個swing GUI。在運行代碼之後,我期望看到的窗口會出現,並且除了在彈出窗口之前突然出現在控制檯上的一堆錯誤,然後這些錯誤就像它們出現時那樣突然消失時,所有內容都可以完美運行。我無法確定這些「錯誤」是什麼,因爲它們似乎不到一秒鐘左右。我也不知道我是否應該擔心,因爲我的代碼正常工作。編譯錯誤列表然後在Eclipse中快速消失
我會在這裏添加代碼以防萬一任何人需要它進行診斷。
我的JPanel類:(注:ActionListener的和的ItemListener方法將會在下面填寫)
public class BoardPanel extends JPanel implements ActionListener, ItemListener{
private JMenu m2difficultyMenu, m1boardSizeMenu;
private JMenuBar menuBar;
private JRadioButtonMenuItem m1r1, m1r2, m2r1, m2r2, m2r3;
private JCheckBox cb1;
private JButton startButton;
private ButtonGroup m1Group, m2Group;
private JLabel label;
private JPanel p1, p2, p3;
public BoardPanel(){
setLayout(new BorderLayout());
p1=new JPanel();
//p1.setLayout(new BoxLayout(p1, BoxLayout.Y_AXIS));
p2=new JPanel();
//p2.setLayout(new BoxLayout(p2, BoxLayout.Y_AXIS));
p3=new JPanel();
p3.setBorder(BorderFactory.createEmptyBorder(100, 0, 0, 0));
p1.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 100));
p2.setBorder(BorderFactory.createEmptyBorder(0, 100, 0, 0));
//creating menus
m2difficultyMenu=new JMenu("Stufe");
m1boardSizeMenu=new JMenu("Groesse");
//creating menu bar
menuBar=new JMenuBar();
//creating buttons, radio buttons, and check boxes
label=new JLabel("Choose your settings then hit play. Good luck!");
m1r1=new JRadioButtonMenuItem("3x3");
m1r2=new JRadioButtonMenuItem("4x4");
m2r1=new JRadioButtonMenuItem("leicht");
m2r2=new JRadioButtonMenuItem("mittel");
m2r3=new JRadioButtonMenuItem("Unschlagbar");
cb1=new JCheckBox("Hinweise");
startButton=new JButton("Spielen!");
startButton.setBackground(Color.RED);
startButton.setForeground(Color.white);
//setting borders
label.setBorder(BorderFactory.createEmptyBorder(200,125,100,0));
//p1.add(Box.createHorizontalStrut(100));
//p2.add(Box.createHorizontalStrut(100));
//creating button groups
m1Group=new ButtonGroup();
m2Group=new ButtonGroup();
//Assigning buttons to groups
m1Group.add(m1r1);
m1Group.add(m1r2);
m2Group.add(m2r1);
m2Group.add(m2r2);
m2Group.add(m2r3);
//Adding menus to the menu bar
menuBar.add(m2difficultyMenu);
menuBar.add(m1boardSizeMenu);
menuBar.add(cb1);
//menuBar.add(Box.createHorizontalGlue());
//Adding buttons to difficulty menu
m2difficultyMenu.add(m2r1);
m2difficultyMenu.add(m2r2);
m2difficultyMenu.add(m2r3);
//Adding buttons to size menu
m1boardSizeMenu.add(m1r1);
m1boardSizeMenu.add(m1r2);
//Adding components to panels
add(p1, BorderLayout.LINE_START);
add(p2, BorderLayout.LINE_END);
add(p3, BorderLayout.PAGE_END);
add(label, BorderLayout.PAGE_START);
add(startButton, BorderLayout.CENTER);
startButton.setFont(new Font("Arial", 1, 40));
setPreferredSize(new Dimension(500,500));
}
/**
*
* @return Returns the menu bar for use in the JFrame class
*/
public JMenuBar getBar(){
return menuBar;
}
@Override
public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}
JFrame類:
public class BoardFrame extends JFrame {
private BoardPanel panel;
public BoardFrame() {
panel=new BoardPanel();
setJMenuBar(panel.getBar());
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setContentPane(panel);
setTitle("TicTacToe");
setResizable(false);
pack();
setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
}
}
new BoardFrame();
} catch (Exception e) {
// If Nimbus is not available, you can set the GUI to another look and feel.
}
}
});
}
}
這是我所看到的,這如預期:
您是否嘗試從命令行運行程序?然後,您將看到正在打印到控制檯的內容。 – Codebender
剛剛做到了。沒有消息被打印,代碼只是運行。 –