刚刚听说过Window Builder,所以我正在处理一段代码,应用程序只需要你的名字并将其返回到标签中。
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.BorderLayout;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
public class app {
private JFrame frame;
private JTextField textField;
private JLabel lblNewLabel;
private static String text;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
app window = new app();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public app() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
lblNewLabel = new JLabel(text);
textField = new JTextField();
textField.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent arg0) {
text = textField.getText();
}
});
frame.getContentPane().add(textField, BorderLayout.NORTH);
textField.setColumns(10);
JButton btnNewButton = new JButton("Check My Name");
btnNewButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
lblNewLabel.setText("Your name is " + text + "!");
}
});
frame.getContentPane().add(btnNewButton, BorderLayout.CENTER);
frame.getContentPane().add(lblNewLabel, BorderLayout.SOUTH);
}
}
不要理解为什么它有时而不是一直有效。我是窗户建设者的新手,所以我很感激详细的答案。
为什么不起作用?你能指出我正确的方向吗?
答案 0 :(得分:1)
不要理解为什么它有时而不是一直有效。
将来,要明确。什么有时有效,什么不起作用?告诉我们您产生错误的步骤。
public void mouseClicked(MouseEvent arg0) {
lblNewLabel.setText("Your name is " + text + "!");
我猜测问题与上面的代码有关。当在同一鼠标点生成mousePressed和mouseReleased事件时,将生成mouseClicked事件。如果在两个事件之间移动鼠标甚至1个像素,则不会生成mouseClicked事件。
不要使用MouseListener。
相反,按钮被设计为与ActionListener
一起使用。实施actionPerformed(...)
方法并在按钮中添加ActionListener
。监听器中的代码将是相同的。
阅读How to Write an ActionListener上的Swing教程中的部分以获取更多信息。
如果这不能解决您的问题,那么您的问题需要更新,并提供有关如何创建问题的更多信息。