【新手提问】六个Focus监视器,为什么偏偏就有一个没效果.请高手看看

coolhty 2008-02-02 06:07:47
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.Border;

public class Insert extends FocusAdapter implements ActionListener{
JFrame f = new JFrame();
JLabel lblid = new JLabel("学号:");
JLabel lblname = new JLabel("姓名:");
JLabel lblclass = new JLabel("班级");
JLabel lblage = new JLabel("年龄:");
JLabel lblsex = new JLabel("性别:");
JLabel lblheight = new JLabel("身高");
JLabel lbltel = new JLabel("电话:");
JLabel lblbirthday = new JLabel("生日:");
JLabel lbladdress = new JLabel("地址:");
JLabel lblid1 = new JLabel();
JLabel lblname1 = new JLabel();
JLabel lblclass1 = new JLabel();
JLabel lblage1 = new JLabel();
JLabel lblheight1 = new JLabel();
JLabel lbltel1 = new JLabel();
JTextField txtid = new JTextField();
JTextField txtname = new JTextField();
JTextField txtclass = new JTextField();
JTextField txtage = new JTextField();
JRadioButton radboy = new JRadioButton("男",true);
JRadioButton radgirl = new JRadioButton("女");
ButtonGroup btngrpsex = new ButtonGroup();
JTextField txtheight = new JTextField();
JTextField txttel = new JTextField();
JTextField txtbirthday = new JTextField();
JTextArea txtaddress = new JTextArea();
String id,name,classes,sex,tel,birthday,address;
int age;
double height;
JPanel pnl = new JPanel();
JButton btnok = new JButton("提交");
JButton btnreset = new JButton("重置");
Icon iconright = new ImageIcon(".\\img\\right.gif");
Icon iconerror = new ImageIcon(".\\img\\error.gif");
Conn con;
public Insert(){
action();
}
public void action(){
con = new Conn();
pnl.setBounds(new Rectangle(140,5,290,390));
pnl.setLayout(null);
pnl.setBorder(BorderFactory.createTitledBorder("插入记录"));
pnl.setVisible(true);
setbounds();
add();
addListener();
}
public void addListener(){
txtid.addFocusListener(this);
txtname.addFocusListener(this);
txtage.addFocusListener(this);
txtclass.addFocusListener(this);
txtheight.addFocusListener(this);
txttel.addFocusListener(this);
btnok.addActionListener(this);
btnreset.addActionListener(this);
}
public void actionPerformed(ActionEvent a){
if(a.getSource().equals(btnok)){
if(opinion()){
int count = con.addbase(this);
if(count>0){
JOptionPane.showMessageDialog(pnl,"成功插入"+count+"数据");
}else{
JOptionPane.showMessageDialog(pnl,"插入数据失败");
}
}else{
JOptionPane.showMessageDialog(pnl,"输入有误,请重新输入","输入错误",JOptionPane.ERROR_MESSAGE);
}
}else if(a.getSource().equals(btnreset)){
reset();
}
}
public void focusLost(FocusEvent f1){
if(f1.getSource().equals(txtid)){
if(!(txtid.getText().isEmpty())){
if(txtid.getText().compareToIgnoreCase("a")!=0){
lblid1.setIcon(iconerror);
lblid1.setText("请输入正确的学号");
}else{
lblid1.setIcon(iconright);
lblid1.setText("");
}
}else{
lblid1.setIcon(iconerror);
lblid1.setText("学号不能为空");
}
}else if(f1.getSource().equals(txtname)){
if(txtname.getText().isEmpty()){
lblname1.setIcon(iconerror);
lblname1.setText("姓名不能为空!");
}else{
lblname1.setIcon(iconright);
lblname1.setText("");
}
}else if(f1.getSource().equals(txtage)){
if(!(txtage.getText().isEmpty())){
int num = Integer.valueOf(txtage.getText().trim());
if(num <18||num> 50){
lblage1.setIcon(iconerror);
lblage1.setText("18至50之间");
}else{
lblage1.setIcon(iconright);
lblage1.setText("");
}
}else{
lblage1.setIcon(iconerror);
lblage1.setText("年龄不能为空");
}
}else if(f1.getSource().equals(txtheight)){
if(!(txtheight.getText().isEmpty())){
double tmp = Double.valueOf(txtheight.getText().trim());
if(tmp <50||tmp> 200){
lblheight1.setIcon(iconerror);
lblheight1.setText("输入不合格");
}else{
lblheight1.setIcon(iconright);
lblheight1.setText("");
}
}
}else if(f1.getSource().equals(txttel)){
if(!(txttel.getText().isEmpty())){
boolean flag = true;
for(int i = 0;i <txttel.getText().trim().length();i++){
if(!(Character.isDigit(txttel.getText().charAt(i)))){
flag = false;
break;
}
}
if(flag){
lbltel1.setIcon(iconright);
lbltel1.setText("");
}else{
lbltel1.setIcon(iconerror);
lbltel1.setText("电话只能为数字");
}
}else{
lbltel1.setIcon(iconerror);
lbltel1.setText("电话不能为空");
}
}else if(f1.getSource().equals(txtclass)){
if(!(txtclass.getText().trim().isEmpty())){
String str = txtclass.getText().trim();
if(str.compareToIgnoreCase("s1")!=0||str.compareToIgnoreCase("s2")!=0||str.compareToIgnoreCase("y2")!=0){
lblclass1.setIcon(iconerror);
lblclass1.setText("只能为:S1,S2,Y2");
}else{
lblclass1.setIcon(iconright);
lblclass1.setText("");
}
}else{
lblclass1.setIcon(iconerror);
lblclass1.setText("班级不能为空");
}
}
}
public void focusGained(FocusEvent f1){
if(f1.getSource().equals(txtid)){
lblid1.setIcon(null);
lblid1.setText("以字母A开始");
}
}
public boolean opinion(){
boolean flag = true;
if(!(txtage.getText().equals("")||txtheight.getText().equals(""))){
if(getid().isEmpty()||getname().isEmpty()||getage()<18||getclass().isEmpty()){
flag = false;
}
}
if(!(gettel().isEmpty())){
for(int i = 0;i<gettel().length();i++){
if(!(Character.isDigit(gettel().charAt(i)))){
flag = false;
break;
}
}
}else{
flag = false;
}
return flag;
}
...全文
88 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
insiku 2008-02-02
  • 打赏
  • 举报
回复
看在你会用代码标识的份上

你没有把panel 放在frame中显示出来
daniel_kaka 2008-02-02
  • 打赏
  • 举报
回复
大段大段代码,让人看了就头疼~
coolhty 2008-02-02
  • 打赏
  • 举报
回复
    public   void   focusLost(FocusEvent   f1){ 
if(f1.getSource().equals(txtid)){
if(!(txtid.getText().isEmpty())){
if(txtid.getText().compareToIgnoreCase("a")!=0){
lblid1.setIcon(iconerror);
lblid1.setText("请输入正确的学号");
}else{
lblid1.setIcon(iconright);
lblid1.setText("");
}
}else{
lblid1.setIcon(iconerror);
lblid1.setText("学号不能为空");
}
}else if(f1.getSource().equals(txtname)){
if(txtname.getText().isEmpty()){
lblname1.setIcon(iconerror);
lblname1.setText("姓名不能为空!");
}else{
lblname1.setIcon(iconright);
lblname1.setText("");
}
}else if(f1.getSource().equals(txtage)){
if(!(txtage.getText().isEmpty())){
int num = Integer.valueOf(txtage.getText().trim());
if(num <18||num> 50){
lblage1.setIcon(iconerror);
lblage1.setText("18至50之间");
}else{
lblage1.setIcon(iconright);
lblage1.setText("");
}
}else{
lblage1.setIcon(iconerror);
lblage1.setText("年龄不能为空");
}
}else if(f1.getSource().equals(txtheight)){
if(!(txtheight.getText().isEmpty())){
double tmp = Double.valueOf(txtheight.getText().trim());
if(tmp <50||tmp> 200){
lblheight1.setIcon(iconerror);
lblheight1.setText("输入不合格");
}else{
lblheight1.setIcon(iconright);
lblheight1.setText("");
}
}
}else if(f1.getSource().equals(txttel)){
if(!(txttel.getText().isEmpty())){
boolean flag = true;
for(int i = 0;i <txttel.getText().trim().length();i++){
if(!(Character.isDigit(txttel.getText().charAt(i)))){
flag = false;
break;
}
}
if(flag){
lbltel1.setIcon(iconright);
lbltel1.setText("");
}else{
lbltel1.setIcon(iconerror);
lbltel1.setText("电话只能为数字");
}
}else{
lbltel1.setIcon(iconerror);
lbltel1.setText("电话不能为空");
}
}else if(f1.getSource().equals(txtclass)){//就是这里没有效果
if(!(txtclass.getText().trim().isEmpty())){
String str = txtclass.getText().trim();
if(str.compareToIgnoreCase("s1")!=0||str.compareToIgnoreCase("s2")!=0||str.compareToIgnoreCase("y2")!=0){
lblclass1.setIcon(iconerror);
lblclass1.setText("只能为:S1,S2,Y2");
}else{
lblclass1.setIcon(iconright);
lblclass1.setText("");
}
}else{
lblclass1.setIcon(iconerror);
lblclass1.setText("班级不能为空");
}
}


这里是重写的方法
coolhty 2008-02-02
  • 打赏
  • 举报
回复
    public void reset(){
txtid.setText("");
txtname.setText("");
txtclass.setText("");
txtage.setText("");
txtheight.setText("");
txttel.setText("");
txtbirthday.setText("");
txtaddress.setText("");
}
public void setbounds(){
lblid.setBounds(new Rectangle(30,40,50,15));
lblid1.setBounds(new Rectangle(145,40,200,15));
lblname1.setBounds(new Rectangle(145,70,200,15));
lblage1.setBounds(new Rectangle(145,130,200,15));
lblheight1.setBounds(new Rectangle(145,190,200,15));
lbltel1.setBounds(new Rectangle(145,220,200,15));
lblclass.setBounds(new Rectangle(145,100,200,15));
lblname.setBounds(new Rectangle(30,70,50,15));
lblclass.setBounds(new Rectangle(30,100,50,15));
lblage.setBounds(new Rectangle(30,130,50,15));
lblsex.setBounds(new Rectangle(30,160,50,15));
lblheight.setBounds(new Rectangle(30,190,50,15));
lbltel.setBounds(new Rectangle(30,220,50,15));
lblbirthday.setBounds(new Rectangle(30,250,50,15));
lbladdress.setBounds(new Rectangle(30,280,50,15));
txtid.setBounds(new Rectangle(70,38,70,20));
txtname.setBounds(new Rectangle(70,68,70,20));
txtclass.setBounds(new Rectangle(70,98,70,20));
txtage.setBounds(new Rectangle(70,128,70,20));
radboy.setBounds(new Rectangle(70,158,40,20));
radgirl.setBounds(new Rectangle(110,158,40,20));
txtheight.setBounds(new Rectangle(70,188,70,20));
txttel.setBounds(new Rectangle(70,218,70,20));
txtbirthday.setBounds(new Rectangle(70,248,70,20));
txtaddress.setBounds(new Rectangle(70,278,150,50));
btnok.setBounds(new Rectangle(65,340,70,30));
btnreset.setBounds(new Rectangle(155,340,70,30));
txtaddress.setBorder(BorderFactory.createLineBorder(Color.black));
}
public void add(){
pnl.add(lblid);
pnl.add(lblname);
pnl.add(lblclass);
pnl.add(lblage);
pnl.add(lblsex);
pnl.add(lblheight);
pnl.add(lbltel);
pnl.add(lblbirthday);
pnl.add(lbladdress);
pnl.add(txtid);
pnl.add(txtname);
pnl.add(txtclass);
pnl.add(txtage);
pnl.add(txtheight);
pnl.add(txttel);
pnl.add(txtbirthday);
pnl.add(txtaddress);
pnl.add(btnok);
pnl.add(btnreset);
pnl.add(radboy);
pnl.add(radgirl);
pnl.add(lblid1);
pnl.add(lblname1);
pnl.add(lblage1);
pnl.add(lblheight1);
pnl.add(lbltel1);
btngrpsex.add(radboy);
btngrpsex.add(radgirl);
}
public String getid(){
id = txtid.getText().trim();
return id;
}
public String getname(){
name = txtname.getText().trim();
return name;
}
public String getclass(){
classes = txtclass.getText().trim();
return classes;
}
public int getage(){
age = Integer.valueOf(txtage.getText().trim());
return age;
}
public String getsex(){
sex = "男";
if(radgirl.isSelected()){
sex = "女";
}
return sex;
}
public double getheight(){
height = Double.valueOf(txtheight.getText().trim());
return height;
}
public String gettel(){
tel = txttel.getText().trim();
return tel;
}
public String getbirthday(){
birthday = txtbirthday.getText().trim();
return birthday;
}
public String getaddress(){
address = txtaddress.getText().trim();
return address;
}
public JPanel getpnl(){
return pnl;
}
public static void main(String[] args) {
new Insert().action();
}
}

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧