📄 digitframe.java
字号:
//【例6.3】 显示一个整数的各位数字。
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.Button;
import java.awt.Dialog;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.WindowListener;
import java.awt.event.WindowEvent;
/*
import java.awt.*;
import java.awt.event.*;
*/
public class DigitFrame extends Frame implements ActionListener, WindowListener
{
private TextField text_input,text_hundred,text_decade,text_digit;
private Button button_ok;
private Dialog dialog;
private Label label_dialog;
public DigitFrame()
{
super("显示整数数字");
this.setSize(190,150);
this.setResizable(false); //窗口大小不能改变
this.setBackground(java.awt.Color.lightGray);
this.setLocation(300,240);
this.setLayout(new java.awt.FlowLayout(FlowLayout.LEFT)); //流布局且左对齐
this.add(new Label("整数"));
text_input = new TextField(10);
this.add(text_input);
text_input.addActionListener(this); //为文本行注册单击事件监听器
button_ok = new Button("OK");
this.add(button_ok);
button_ok.addActionListener(this); //为按钮注册单击事件监听器
this.add(new Label("百位"));
text_hundred = new TextField(10);
text_hundred.setEditable(false); //只能显示,不允许编辑
this.add(text_hundred);
this.add(new Label("十位"));
text_decade = new TextField(10);
text_decade.setEditable(false);
this.add(text_decade);
this.add(new Label("个位"));
text_digit = new TextField(10);
text_digit.setEditable(false);
this.add(text_digit);
this.addWindowListener(this); //为框架注册事件监听器,委托当前类的对象处理事件
this.setVisible(true);
dialog = new Dialog(this,"提示",true); //模式窗口
dialog.setSize(240,80);
label_dialog = new Label("",Label.CENTER); //标签的字符串为空,居中对齐
dialog.add(label_dialog);
dialog.addWindowListener(this); //为对话框注册窗口事件监听器
}
public void actionPerformed(ActionEvent e) //按钮单击、文本行中单击回车键
{
try
{
int i = Integer.parseInt(text_input.getText());
text_hundred.setText(""+(i / 100)); //百位
text_decade.setText(""+(i/10 % 10)); //十位
text_digit.setText(""+(i % 10)); //个位
}
catch(NumberFormatException nfe)
{
label_dialog.setText("\""+text_input.getText()+"\" 不能转换成整数,请重新输入!");
dialog.setLocation(this.getX()+100,this.getY()+100);
dialog.setVisible(true);
}
finally{}
}
public void windowClosing(WindowEvent e)
{
if(e.getSource()==dialog)
dialog.setVisible(false); //隐藏对话框
else
System.exit(0);
}
public void windowOpened(WindowEvent e) { }
public void windowActivated(WindowEvent e) { }
public void windowDeactivated(WindowEvent e) { }
public void windowClosed(WindowEvent e) { }
public void windowIconified(WindowEvent e) { }
public void windowDeiconified(WindowEvent e) { }
public static void main(String arg[])
{
new DigitFrame();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -