问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用Java图形用户界面做项目的几个小问题

发布网友 发布时间:2022-05-26 21:29

我来回答

2个回答

热心网友 时间:2023-11-03 19:19

1.你把有效地卡号放到一个List中,得到一个卡号后,用List的contains()方法,查看是否有效。对话框可以用javax.swing.JDialog类实现。
2.第二个比较难,不过可以用addCaretListener()方法,监听插入符的改变,这样他每输入一个字符,你都可以判断一下是否是合法,不合法就将文本设为未输入该字符前的状态,我想也差不多了吧,
3.至于如何判断只能是数字我想可以这样
《1》.转换成Integer,如果没有异常,ok。
《2》.将文本框内容String,转化成char[],在判断每个char是否是0-9的字符。

热心网友 时间:2023-11-03 19:20

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class GUI extends JFrame {
private List<String> numbers;
private JButton btn;
private JTextField input;
private JTextArea area;
// ^-?\\d+$ 匹配整数
// [0-9]+(.[0-9]+)? 匹配浮点数
private Pattern pattern = Pattern.compile("^-?\\d+$");

public GUI() {
super.setTitle("号码检查");
super.setResizable(false);
super.setSize(400, 250);
super.setLocationRelativeTo(null);
JPanel mainPanel = new JPanel(new BorderLayout());
JPanel topPanel = new JPanel(new BorderLayout());
area = new JTextArea();
JScrollPane jsp = new JScrollPane(area);
btn = new JButton("添加该号码");
numbers = new ArrayList<String>();
input = new JTextField(30);
topPanel.add(input, BorderLayout.CENTER);
topPanel.add(btn, BorderLayout.EAST);

mainPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
mainPanel.add(topPanel, BorderLayout.NORTH);
mainPanel.add(jsp, BorderLayout.CENTER);
getContentPane().add(mainPanel);

btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String in = GUI.this.input.getText();
if (in == null || in.length() == 0) {
JOptionPane.showMessageDialog(GUI.this, "当前没有输入数字,请输入数字");
}//
else {
Matcher matcher = pattern.matcher(in);
boolean b = matcher.matches();
if (!b) {
// input is not a number
JOptionPane.showMessageDialog(GUI.this, "不是 数字", "错误", JOptionPane.ERROR_MESSAGE);
}//
else if (GUI.this.numbers.contains(in)) {
// input is a number but existed already
JOptionPane.showMessageDialog(GUI.this, "你输入的数字:" + in + ", 已经存在!");
}//
else {
// input is a new number
numbers.add(in);
area.append(in + "\n");
JOptionPane.showMessageDialog(GUI.this, "你输入的数字:" + in + ", 合法,已经添加到数组中!");
}
}
}
});
}

public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new GUI().setVisible(true);
}
});
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? java 用JOptionPane.showMessageDialog(null, &quot;获取成功!&quot;); 打开的对话框 如何设置为3秒之后自动关闭 JTable行选取的事件触发如何实现 现有java编辑记事本代码里边有错误,请各位大神修改 java编写一个“猜数”程序:该程序随机在1到1000的范围中选择一个供用户猜测的整数 java swing的问题 Java题,求大佬解答 setLocationRelativeTo是什么意思? dialog.setLocationRelativeTo(null);这是什么意思丫?? Java中setLocationRelativeTo是什么意思? 机箱电源 350w 多少钱啊大概 中触媒上市发行价大概是多少 我新配的电脑,电源是额定350W,没问题吧 机箱加350W电源(快!有分加) 350W的电脑主机电源哪个好? 电脑电源是350W的,是说一小时用掉350W的意思吗? 电脑主机的电源上写着最大功率350W,那额定是多少?能带起GT240吗? 机箱350w电源+19寸液晶显示器大约多久用一度电啊 电脑电源350W代表什么意思?是不是越大越好? 机箱电源上写着:额定功率250W,最高350W,这个是什么意思? 能用耕升GTS250 张辽版显卡,PC-IE插槽的吗? 我的机箱电源是350W,高出50W对硬件有损害吗? Exception in thread &quot;main&quot; java.lang.NullPointerException at Login.&lt;init&gt;(Login.java:32) Exception in thread &quot;main&quot; java.lang.NullPointerException at Game1024.(Game1024.java:52 java:26) 跟骨粉碎性骨折工伤能赔偿多少钱 时间进程的介绍 是太阳上的卫星的时间进程慢还是地球上的时间进程慢? 时间进程的加速度相对论 时间进程的双生子悖论 获得了时间片的进程处于什么状态 阅读的时间进程是什么意思 2010世界杯比赛时间进程 为什么飞船上的时间进程比地面上的慢,求详解 进程信息含时间吗 哪些日本漫画,故事情节是有着明显的时间进程的(主人公逐渐长大、变老)? 在时间片轮转调度中,如果一个进程在一个时间片内就已经运行结束,那剩下的时间片时间怎么利用 操作系统中一个时间片对应一个进程吗? win10开机显示你的电脑遇到问题突然卡死了 线程、进程和时间片的关系 unix 进程时间问题 ecut5. 0的作用 怎么c语言写程序结束进程csdn