JAVA小程序!请求帮助!

来源:百度知道 编辑:UC知道 时间:2024/05/14 07:33:35
import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Class1 extends JFrame {

private JPanel jPanel1 = new JPanel();
private JButton jButton1 = new JButton();
private JTextField jTextField1 = new JTextField(10);
public Class1() {
try {
jbInit();
} catch (Exception e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
Class1 class1 = new Class1();
class1.setSize(400,300);
class1.setVisible(true);
class1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

private void jbInit() throws Exception {
jButton1.setText("测试")

把jButton1_actionPerformed() 这个方法改成下面的.
再试试看!
-----------------------------------------------
private void jButton1_actionPerformed(ActionEvent e) {
String txt = jTextField1.getText();
boolean is_number = true;
for(int j = 0 ; j < txt.length() ; j++) {
if (!(txt.charAt(j) >= 48 && txt.charAt(j) <= 57)) {
is_number = false;
break;
}
}
if(is_number){
//正常的时候的处理
}
else{
JOptionPane.showMessageDialog(null,"您输入的不是数字,请重新输入!");
}
}

覆盖actionPerformed方法改一下

while(al) {
for(int j = 0 ; j < txt.length() ; j++) {
if (!(txt.charAt(j) >= 48 && txt.charAt(j) <= 57)) {
al=true;
JOptionPane.showMessageDialog(this,"您输入的不是数字,请重新输入!");
return;
}

break是跳出离它最近的循环,你这里有2层循环呢!
其实这里直接return 就可以了,方法结束

还有Class1既然继承了JFrame
JOptionPane.showMessageDialog中传this 就可以