与JFrame交互-按钮、监听器和文本字段

时间:2020-02-23 14:37:17  来源:igfitidea点击:

本教程介绍如何使用按钮、侦听器和文本字段与JFrame进行交互。

背景

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

添加文本字段

可以使用JTextfield()方法创建textfield。这个类有许多构造函数,比如JTextField():它构造一个新的文本字段

JTextField(字符串文本):用指定的文本构造文本字段。

JTextField(stringtext,int column):它用指定的文本和列数创建一个新的文本字段。

下面的程序展示了向JFrame添加文本字段的示例。

package theitroad.local;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class Example {

	static JTextField textfield1, textfield2, textfield3;

	 public static void main(String[] args) {

		    JFrame f = new JFrame("Text Field Examples");
		    f.getContentPane().setLayout(new FlowLayout());
		    textfield1 = new JTextField("Text field 1",10);
		    textfield2 = new JTextField("Text field 2",10);
		    textfield3 = new JTextField("Text field 3",10);
		    f.getContentPane().add(textfield1);
		    f.getContentPane().add(textfield2);
		    f.getContentPane().add(textfield3);

		    f.pack();
		    f.setVisible(true);
		  }
}

这是这个代码的输出

TextField示例

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

JTextField.setfont(f字体);设置文本的字体

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

JTextFieldsetScrollOffset(int scrolloffset);它以像素为单位设置滚动偏移。

添加按钮,应用动作监听

类似地,我们可以向JFrame添加按钮。JButton为我们提供了一种添加按钮和动作监听器的简单方法。它有很多构造函数

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

JButton(字符串文本):创建具有指定文本的按钮。

JButton(图标图标);创建具有指定图标的按钮。

JButton(字符串文本,图标图标);创建具有指定文本和图标的按钮。

下面是一个带有图像图标的JButton的简单示例。

package theitroad.local;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;

public class SimpleJButton {

	SimpleJButton(){    
		JFrame f=new JFrame("Button Example");            
		JButton b=new JButton("Play", new ImageIcon("play.png"));    
		b.setBounds(100,100,140, 40);    
		f.add(b);    
		f.setSize(300,400);    
		f.setLayout(null);    
		f.setVisible(true);    
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
		}         
		public static void main(String[] args) {    
		    new SimpleJButton();    
		}    
 }

这是这个代码的输出

带图标的按钮

添加动作监听器

在JButton上添加动作侦听器非常简单。JButton类提供了一个方法JButton.addActionListener(),它实现重写方法actionPerformed()。在下面的示例中,我编写了一个简单的程序,告诉用户输入名称,当用户单击提交按钮时,会显示一条消息“name has been submitted.”。这是密码。

package theitroad.local;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class SimpleJButton {

	SimpleJButton(){    
		JFrame f=new JFrame("Button Example"); 
					//submit button
		JButton b=new JButton("Submit");    
		b.setBounds(100,100,140, 40);    
					//enter name label
		JLabel label = new JLabel();		
		label.setText("Enter Name :");
		label.setBounds(10, 10, 100, 100);
					//empty label which will show event after button clicked
		JLabel label1 = new JLabel();
		label1.setBounds(10, 110, 200, 100);
					//textfield to enter name
		JTextField textfield= new JTextField();
		textfield.setBounds(110, 50, 130, 30);
					//add to frame
		f.add(label1);
		f.add(textfield);
		f.add(label);
		f.add(b);    
		f.setSize(300,300);    
		f.setLayout(null);    
		f.setVisible(true);    
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   

							//action listener
		b.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
					label1.setText("Name has been submitted.");				
			}          
	      });
		}         

		public static void main(String[] args) {    
		    new SimpleJButton();    
		}    
 }