2015-08-08 102 views
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. 
       } 
      } 
     }); 
    } 
} 

這是我所看到的,這如預期:

enter image description here

+1

您是否嘗試從命令行運行程序?然後,您將看到正在打印到控制檯的內容。 – Codebender

+0

剛剛做到了。沒有消息被打印,代碼只是運行。 –

回答

0

從命令行運行代碼並在那裏看到沒有錯誤消息後,我重新啓動Eclipse,並做了訣竅。所以Eclipse只需要重新啓動。