我的第一个java图形用户界面程序

java,我新手,最近才开始学习。所以经常碰到很多问题。

在编写下面的第一个java图形界面程序的时候,我在网上看到过说要配置什么swt路径问题。原来swt插件是用于优化和美观图形界面的,像我下面的是用java基础包写的程序,没有用到swt插件。就没必要配置swt路径。

下面解释一下我的第一个图形画界面程序:

显示一个整数的各位数字。演示一个带图形用户界面的完整应用程序,包括输入数据,显示结果,响应事件和异常处理。

package study;
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.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
   {
    final 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[] args) {
    new DigitFrame();

 }

}

程序设计说明如下:

窗口关闭事件不能委托其他类处理

由于对话框也要响应窗口关闭事件,在windowClosing方法体中,需要识别当前事件源时框架还是对话框,所以本例的窗口关闭事件不能委托其他类处理。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值