java gui 结构_Java GUI程序的基本编程结构

1.主类的定义如下:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class MyClass extends JFrame implements

ActionListener{

2.引入成员数据、用于GUI界面的各种组件,并new出来。

3。设置JFrame里的面板(JPanel)对象。类JFrame里包含了一个JPanel对象。

可以通过:

Container c=getContentPane(); //获得内容窗格,即面板

c.setLayout(new FlowLayout());//设置布局样式

4。将GUI组件加入到面板上。

5。注册对象事件监听器。

calculate.addActionListener(this); /注册按钮事件监听器

6。设置并显示框架窗口。

this.setTitle("登录窗口");

this.setSize(340,260);

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

7。完成public void actionPerformed(ActionEvent e)函数。

以上即可以在构造函数里完成,也可以在main()函数里完成。一般在构造函数里完成。

8。main()就简单了。

public static void main(String[]

args) {

MyClass

fm=new MyClass();//创建主类实例

}

下面是示例代码,供大家参考:

利用Java Swing技术设计一个求解一元二次方程根的图形用户界面应用程序。

简要提示

该程序用JLabel来显示提示性文本,用JTextField来接收用户输入系数,用JTextArea显示一元二次方程的根。当单击“计算”按钮时对用户输入的一元二次方程系数进行检验,若有实根则显示结果。当单击“清除”按钮时清除文本区中的结果以便重新输入计算.

//Formula.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Formula extends JFrame implements

ActionListener{

JTextField a_tf,b_tf,c_tf; //定义三个文本框

JTextArea result_tf;

JLabel lb_a,lb_b,lb_c;

double a,b,c;

double xl,x2 ;

JButton calculate, clear;

public

Formula(){ //构造方法

super("求一元二次方程的根");

Container

c=getContentPane(); //获得内容窗格

a_tf =new

JTextField(2); //创建输入二次项系数a的文本框

b_tf=new

JTextField(2); //创建输入二次项系数b的文本框

c_tf= new

JTextField(2); //创建输入二次项系数c的文本框

lb_a=new

JLabel("二次项系数"); //创建标签

lb_b= new

JLabel("一次项系数");

lb_c=new

JLabel("常数项系数");

calculate=new JButton("计算"); //创建显示“计算”的按钮

clear= new

JButton("清除"); //创建显示“清除”的按钮

result_tf=new JTextArea(5,30); //创建显示结果的文本区

c.setLayout(new FlowLayout());//设置内容窗格为流布局方式

c.add(lb_a); //往内容窗格中添加标签lb_a

c.add(a_tf);

c.add(lb_b);

c.add(b_tf);

c.add(lb_c);

c.add(c_tf);

c.add(calculate);

c.add(clear);

c.add(result_tf);

calculate.addActionListener(this); //按钮注册事件监听器 clear.addActionListener(this);

setSize(350,200); //设置窗口大小

setLocation(200,200); //设置窗口位置

setVisible(true); //显示窗口

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void actionPerformed(ActionEvent e)

{ //实现监听器方法。对于初学者,此编码可以省略。后续任务会进行详解。

if(e.getSource()==calculate) {

a=Double.parseDouble(a_tf.getText());

b=Double.parseDouble(b_tf.getText());

c=Double.parseDouble(c_tf.getText());

if(b*b-4*a*c>0){

xl=(-b+Math.sqrt(b*b-4*a*c))/2;//计算第一个根

x2=(-b-Math.sqrt(b*b-4*a*c))/2;//计算第二个根

result_tf.setText("xl="+xl+"\n"+"x2="+x2);

}else if(b*b-4*a*c==0){

xl=(-b+Math.sqrt(b*b-4*a*c))/2;//计算第一个根

result_tf.setText("x="+xl+"\n"+"只有一个根!");

}

else

JOptionPane.showMessageDialog(this.getContentPane(),"a、b、c输入的数值错误!!!");

}

else{

result_tf.setText( " ");

a_tf.setText("");

b_tf.setText("");

c_tf.setText("");

}

}

public static void main(String[]

args) {

Formula fm=new Formula();//创建主类实例

}

}

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值