此代碼也正在編譯和執行,但方法actionPerformed()
未正確執行。我的意思是在點擊確定按鈕後,JTextField
中沒有寫入任何內容。即使在使用e.getSource()
後也不執行任何操作。 System.out.println("I am done ")
工作正常,但t.setText("Hey there")
不起作用。?代碼有什麼問題?如果有人願意,請幫助我。
而且你能否詳細說明爲什麼如果不在Panel
上添加JButton
和JTextField
這是不可見的?爲了使按鈕和文本字段可見,爲什麼添加面板很重要。沒有它是不可見的原因?我的代碼有什麼問題?
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class A implements ActionListener {
JFrame f;
JButton b;
JPanel p;
JLabel l;
JTextField t;
A(String s) {
JFrame f=new JFrame(s);
f.setVisible(true);
f.setSize(400,400);
JButton b= new JButton("OK");
JTextField t=new JTextField();
JPanel p=new JPanel();
f.add(p);
p.setBounds(0,0,300,300);
p.add(b);
b.setBounds(30,40,80,80);
p.add(t);
t.setBounds(100,200,80,80);
b.addActionListener(this);
t.addActionListener(this);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == b) {
t.setText("Hey There");
}
System.out.println("I m done!!");
}
public static void main(String[] args) {
System.out.println("Hey there");
new A("First App");
}
}
* 「也可以你..」 * SO上應該是一個單一的,具體的問題一個問題。其他問題最好從不同的線索開始。另外:使用縮進代碼行和塊的邏輯和一致的形式。縮進旨在使代碼的流程更易於遵循! –
還請注意,您的問題標題對我們沒有幫助,因爲它是單獨的非信息性的。 「我的代碼有什麼問題」告訴我們關於你的問題沒有任何**,除了你有問題 - 但我們已經知道了,否則你不會在這裏。今後,請努力以更好的標題提出更好的問題。這將有助於你和我們。 –
'f.setVisible(true);'應該是'pack()'後的最後一個。和'p.setBounds(0,0,300,300);'Java GUI必須在不同的操作系統上工作',屏幕大小,屏幕分辨率等等,在不同的語言環境中使用不同的PLAF。因此,它們不利於像素的完美佈局。請使用佈局管理器或[它們的組合](http://stackoverflow.com/a/5630271/418556)以及[white space]的佈局填充和邊框(http://stackoverflow.com/a/17874718/ 418556)。 –