嗯,這是一個非常新穎的提示。我聲稱自己寫了我的GUI應用程序的代碼,在窗口生成器的幫助下,我決定停止使用netbeans,因此在這裏閱讀了一些人物,說這很好。你可能會認爲我還沒有調查,但是請相信我,我做功課......搖擺和事件
我tryed預言的方式說:
- 聲明一個事件處理程序類,並指定任一類實現一個ActionListener接口或擴展實現ActionListener接口的類。例如:
公共MyClass類實現的ActionListener {
- 註冊事件處理程序類的實例爲在一個或多個組件的監聽器。例如:
someComponent.addActionListener(instanceOfMyClass);
- 包含在偵聽器接口中實現方法的代碼。例如:
公共無效的actionPerformed(ActionEvent的五){ ... //代碼,反應動作...... }
package Todos;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Main extends JFrame {
private JPanel contentPane;
protected JButton btnNewButton;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Main frame = new Main();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Main() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getContentPane().setLayout(new BorderLayout());
//setDefaultLookAndFeelDecorated(false);
//setIconImage(Image imagen);
setTitle("");
setSize(java.awt.Toolkit.getDefaultToolkit().getScreenSize());
setPreferredSize(java.awt.Toolkit.getDefaultToolkit().getScreenSize());
setLocationRelativeTo(null);
this.btnNewButton = new JButton("New button");
this.btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
asd(arg0);
}
});
this.getContentPane().add(this.btnNewButton, BorderLayout.NORTH);
}
public void asd(ActionEvent arg0) {
this.getContentPane().add(new JButton("asd"));
}
}
的cuestion是,爲什麼這個代碼不工作,將JButton IM嘗試添加到ActionField事件的JFrame在單擊後不可見。
這是一個示例代碼,可能看起來很愚蠢,但我認爲它簡化了提示,因爲我的問題是在幾行代碼中,它並不需要向您展示洞眼。
預先感謝您!
而你的問題是......? –
問題是什麼?您沒有像所描述的那樣創建或實現動作偵聽器,而是使用內部類。 – 2013-10-23 10:53:25
對不起,編輯我的問題... @nikpon,我使用內部類訪問NetBeans等JFrame內容。這就是爲什麼我說「我自己的方式」(即使我這樣做,甲骨文說,也沒有爲我工作) – Hernan