设计一个简单的图形界面,功能是对用户输入字符串后,点击“显示分析结果”的按钮,如果字符串中含有字母和数字以外的字符,就提示“字符串不合法”,否则提示“字符串合法”
package finalexam;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JTextArea;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Main extends JFrame {
private static final String GetName = null;
private JPanel contentPane;
private JTextField textField;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Main frame = new Main();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Main() {
setTitle("\u5B57\u7B26\u4E32\u5339\u914D");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 965, 590);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
JLabel lblNewLabel = new JLabel("\u8F93\u5165");
lblNewLabel.setFont(new Font("宋体", Font.PLAIN, 30));
JTextArea textArea = new JTextArea();//输入文本
//String SetName=textArea.getText();//将输入的文本赋值给SetName变量
//如果一开始在这里这里写,则在按钮点击事件里面,就会读不到该字符串
//System.out.println(SetName);
textArea.setFont(new Font("Monospaced", Font.PLAIN, 26));
JButton btnNewButton = new JButton("\u663E\u793A\u5206\u6790\u7ED3\u679C");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {//按钮点击事件
String GetName;
String SetName=textArea.getText();//将输入的文本赋值给SetName变量
//System.out.println(SetName);
String regex="^[a-z0-9A-Z]+$";
if(SetName.matches(regex)) {
GetName="字符串合法";
}
else {
GetName="字符串不合法";
System.out.println(SetName.matches(regex));
}
textField.setText(GetName);
}});
btnNewButton.setFont(new Font("宋体", Font.PLAIN, 22));
textField = new JTextField();
textField.setFont(new Font("宋体", Font.PLAIN, 30));
textField.setColumns(10);
JLabel lblNewLabel_1 = new JLabel("\u8F93\u51FA\u7ED3\u679C");
lblNewLabel_1.setFont(new Font("宋体", Font.PLAIN, 30));
GroupLayout gl_contentPane = new GroupLayout(contentPane);
gl_contentPane.setHorizontalGroup(
gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup()
.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup()
.addGap(52)
.addComponent(textArea, GroupLayout.PREFERRED_SIZE, 304, GroupLayout.PREFERRED_SIZE)
.addGap(40)
.addComponent(btnNewButton, GroupLayout.PREFERRED_SIZE, 179, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_contentPane.createSequentialGroup()
.addGap(165)
.addComponent(lblNewLabel)))
.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup()
.addGap(54)
.addComponent(textField, GroupLayout.DEFAULT_SIZE, 302, Short.MAX_VALUE)
.addContainerGap())
.addGroup(Alignment.TRAILING, gl_contentPane.createSequentialGroup()
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(lblNewLabel_1, GroupLayout.PREFERRED_SIZE, 131, GroupLayout.PREFERRED_SIZE)
.addGap(91))))
);
gl_contentPane.setVerticalGroup(
gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup()
.addGap(75)
.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
.addComponent(lblNewLabel, GroupLayout.PREFERRED_SIZE, 62, GroupLayout.PREFERRED_SIZE)
.addComponent(lblNewLabel_1, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE))
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING, false)
.addComponent(textArea)
.addComponent(btnNewButton, GroupLayout.PREFERRED_SIZE, 62, GroupLayout.PREFERRED_SIZE)
.addComponent(textField, GroupLayout.DEFAULT_SIZE, 295, Short.MAX_VALUE))
.addContainerGap(120, Short.MAX_VALUE))
);
contentPane.setLayout(gl_contentPane);
}
}
运行结果图
输入字符串测试结果如下: