2013-11-21 54 views
0

爲什麼我的程序不工作?我想使用borderlayout,並且每個按鈕都做不同的事情。我做了很多研究,但我仍然犯了錯誤,只是迷失了方向。操作事件錯誤

感謝您提前給予的幫助。

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.awt.BorderLayout; 
import java.awt.event.ActionListener; 
import java.awt.event.ActionEvent; 

    public class Guard10 { 

public static void main(String[] args) 
{ 
     new Guard10() 
} 

    public Guard10() 
    {  
    JFrame myFrame = new JFrame(); 
    myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    myFrame.setTitle("Show BorderLayout"); 
    myFrame.setSize(300, 200); 
    myFrame.setLocationRelativeTo(null); 

    // Add buttons to the frame 
    JButton labelButton = new JButton ("one"); 
    labelButton.addActionListener(new LabelListener() 
    { 
     @Override 
      public void actionPerformed (ActionEvent event) 
      { 
       System.out.println ("You clicked it!"); 
      } 
    }); 
    //////////// 
    JButton button2 = new JButton ("two"); 
    button2.addActionListener(new Button2Listener() 
    { 
     @Override 
      public void actionPerformed (ActionEvent event) 
      { 
       System.out.println ("YAY!"); 
      } 
     } 
    myFrame.add(labelButton,BorderLayout.SOUTH);  
    myFrame.add(button2,BorderLayout.NORTH) 
      myFrame.setVisible(true); 

    } 
    } 
+0

發佈stacktrace以便我們可以看到錯誤 – Blacklight

+0

什麼樣的錯誤?彙編?例外?不良行爲? –

+0

我很抱歉沒有把錯誤。我得到了11個錯誤:大部分是「找不到符號」 –

回答

2

你只是忘了一些分號和括號。下面的更正的代碼正在工作。另外,如果您什麼都不做,但是覆蓋actionPerformed,則使用標準ActionListener

public class Guard10 { 

    public static void main(String[] args) 
    { 
    new Guard10(); 
    } 

    public Guard10() 
    { 
    JFrame myFrame = new JFrame(); 
    myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    myFrame.setTitle("Show BorderLayout"); 
    myFrame.setSize(300, 200); 
    myFrame.setLocationRelativeTo(null); 

    // Add buttons to the frame 
    JButton labelButton = new JButton ("one"); 
    labelButton.addActionListener(new ActionListener() 
    { 
     @Override 
     public void actionPerformed (ActionEvent event) 
     { 
     System.out.println ("You clicked it!"); 
     } 
    }); 
    //////////// 
    JButton button2 = new JButton ("two"); 
    button2.addActionListener(new ActionListener() 
    { 
     @Override 
     public void actionPerformed (ActionEvent event) 
     { 
     System.out.println ("YAY!"); 
     } 
    }); 
     myFrame.add(labelButton,BorderLayout.SOUTH); 
    myFrame.add(button2,BorderLayout.NORTH); 
    myFrame.setVisible(true); 

    } 
} 

如果您嘗試編譯,您將獲得堆棧跟蹤中的所有錯誤。只要看一下線路就可以發現什麼是錯誤的。我也建議你使用Eclipse或IntelliJ Idea這樣的IDE,它們會在你編寫代碼之前編譯前標記語法錯誤。