23,407
社区成员
发帖
与我相关
我的任务
分享
import javax.swing.*;
import javax.swing.event.*;
@SuppressWarnings("serial")
public class SanWeiShu extends JFrame implements CaretListener
{
JTextField a,b,c,d;
MessageJDialog jd;
public SanWeiShu(String title)
{
super(title);
this.setBounds(231,300, 280,200);
this.setResizable(false);
this.setBackground(Color.lightGray);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.getContentPane().setLayout(new FlowLayout(FlowLayout.RIGHT));
this.getContentPane().add(new JLabel("整数"));
a=new JTextField("a56",20);
this.getContentPane().add(a);
a.addCaretListener(this);
this.getContentPane().add(new JLabel("百位"));
b = new JTextField(20);
b.setHorizontalAlignment(JTextField.RIGHT);
b.setEditable(false);
this.getContentPane().add(b);
this.getContentPane().add(new JLabel("十位"));
c = new JTextField(20);
c.setHorizontalAlignment(JTextField.RIGHT);
c.setEditable(false);
this.getContentPane().add(c);
this.getContentPane().add(new JLabel("个位"));
d = new JTextField(20);
d.setHorizontalAlignment(JTextField.RIGHT);
d.setEditable(false);
this.getContentPane().add(d);
caretUpdate(null);
this.setVisible(true);
jd = new MessageJDialog(this);
}
public class MessageJDialog extends JDialog
{
JFrame jf;
JLabel jl;
MessageJDialog(JFrame jf)
{
super(jf,"消息",true);
this.jf = jf;
this.setSize(300, 80);
jl = new JLabel("",JLabel.CENTER);
this.getContentPane().add(jl);
this.setDefaultCloseOperation(HIDE_ON_CLOSE);
}
void show(String message)
{
jl.setText(message);
this.setLocation(jf.getX()+100, jf.getY()+100);
this.setVisible(true);
}
}
@Override
public void caretUpdate(CaretEvent e)
{
try
{
int s = Integer.parseInt(a.getText());
b.setText(String.valueOf(s/100));
c.setText(String.valueOf((s/10)%10));
d.setText(String.valueOf(s%10));
}
catch(NumberFormatException nfe)
{
jd.show(a.getText()+" 不能转化成整数,请重新输入!");
}
}
public static void main(String[] args)
{
new SanWeiShu("显示整数数字");
}
}