原文: https://javatutorial.net/jframe-buttons-listeners-text-fields

本教程说明了如何通过使用按钮,监听器和文本区域与JFrame进行交互。

背景

交互性是用户在每个应用程序中想要的。 为了在程序中增加交互性,Java 为我们提供了一种非常简单的方法。Javax.swing.JButton类为我们提供了一种添加按钮的方法,并且在单击按钮后发生事件。 同样,借助javax.swing.JTextfield的帮助,我们可以向JFrame添加文本区域。

添加文本区域

您可以使用JTextfield()方法创建一个文本区域。 此类具有许多构造函数,如JTextField():构造一个新的文本区域

JTextField(String text):使用指定的文本构造一个文本区域。

JTextField(String text, int colomn):它使用指定的文本和列数创建一个新的文本区域。

以下程序显示了向JFrame添加文本区域的示例。

  1. package javatutorial.net;
  2. import java.awt.FlowLayout;
  3. import javax.swing.JFrame;
  4. import javax.swing.JTextField;
  5. public class Example {
  6. static JTextField textfield1, textfield2, textfield3;
  7. public static void main(String[] args) {
  8. JFrame f = new JFrame("Text Field Examples");
  9. f.getContentPane().setLayout(new FlowLayout());
  10. textfield1 = new JTextField("Text field 1",10);
  11. textfield2 = new JTextField("Text field 2",10);
  12. textfield3 = new JTextField("Text field 3",10);
  13. f.getContentPane().add(textfield1);
  14. f.getContentPane().add(textfield2);
  15. f.getContentPane().add(textfield3);
  16. f.pack();
  17. f.setVisible(true);
  18. }
  19. }

这是此代码的输出

与`JFrame`交互 – 按钮,监听器和文本区域 - 图1

文本区域示例

您可以使用JTextfield提供的不同方法进行自定义。

JTextField.setfont(Font f):它设置文本的字体

JTextField.setHorizontalAlignment(int alignment):它设置文本的水平对齐方式。

JTextField.setScrollOffset(int scrolloffset):它以像素为单位设置滚动偏移量。

添加按钮并应用动作监听器

同样,您可以在JFrame中添加按钮。 JButton为我们提供了一种添加按钮和动作监听器的简便方法。 它有很多像

JButton():创建一个没有文本且没有图标的按钮。

JButton(String text):创建一个带有指定文本的按钮。

JButton(Icon icon):创建一个带有指定图标的按钮。

JButton(String text, Icon icon):创建带有指定文本和图标的按钮。

这是带有图像图标的JButton的简单示例。

  1. package javatutorial.net;
  2. import javax.swing.ImageIcon;
  3. import javax.swing.JButton;
  4. import javax.swing.JFrame;
  5. public class SimpleJButton {
  6. SimpleJButton(){
  7. JFrame f=new JFrame("Button Example");
  8. JButton b=new JButton("Play", new ImageIcon("play.png"));
  9. b.setBounds(100,100,140, 40);
  10. f.add(b);
  11. f.setSize(300,400);
  12. f.setLayout(null);
  13. f.setVisible(true);
  14. f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  15. }
  16. public static void main(String[] args) {
  17. new SimpleJButton();
  18. }
  19. }

这是此代码的输出

与`JFrame`交互 – 按钮,监听器和文本区域 - 图2

带有图标的按钮

添加动作监听器

JButton上添加动作监听器非常简单。 JButton类提供方法JButton.addActionListener(),该方法实现重写方法actionPerformed()。 在下面的示例中,我编写了一个简单的程序,要求用户输入名称,当用户单击“提交”按钮时,将显示一条消息“名称已提交”。这是代码。

  1. package javatutorial.net;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import javax.swing.JButton;
  5. import javax.swing.JFrame;
  6. import javax.swing.JLabel;
  7. import javax.swing.JTextField;
  8. public class SimpleJButton {
  9. SimpleJButton(){
  10. JFrame f=new JFrame("Button Example");
  11. //submit button
  12. JButton b=new JButton("Submit");
  13. b.setBounds(100,100,140, 40);
  14. //enter name label
  15. JLabel label = new JLabel();
  16. label.setText("Enter Name :");
  17. label.setBounds(10, 10, 100, 100);
  18. //empty label which will show event after button clicked
  19. JLabel label1 = new JLabel();
  20. label1.setBounds(10, 110, 200, 100);
  21. //textfield to enter name
  22. JTextField textfield= new JTextField();
  23. textfield.setBounds(110, 50, 130, 30);
  24. //add to frame
  25. f.add(label1);
  26. f.add(textfield);
  27. f.add(label);
  28. f.add(b);
  29. f.setSize(300,300);
  30. f.setLayout(null);
  31. f.setVisible(true);
  32. f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  33. //action listener
  34. b.addActionListener(new ActionListener() {
  35. @Override
  36. public void actionPerformed(ActionEvent arg0) {
  37. label1.setText("Name has been submitted.");
  38. }
  39. });
  40. }
  41. public static void main(String[] args) {
  42. new SimpleJButton();
  43. }
  44. }

这是此代码的输出

与`JFrame`交互 – 按钮,监听器和文本区域 - 图3

行为监听器

这是完整代码的链接,您可以下载。