此代码也正在编译和执行,但方法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)。 –