java第11章 图形用户界面编程

实验内容:

      1.计算圆面积。

      2.四则运算器。

实验步骤:

1.计算圆面积。在第一个文本框中输入圆的半径,然后计算此圆面积的值,并将此值放入到第二个文本框中。

源代码:

package homework.实验11_图形用户界面;

import java.awt.Button;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;


public class Circle extends Frame implements ActionListener {
    private static final long serialVersionUID = 1L;
    static TextField tf1 = new TextField();
    static TextField tf2 = new TextField();
    static Label lab1 = new Label("radius");
    static Button bt = new Button("area");

    public static void main(String[] args){
        Circle c = new Circle();
        c.setTitle("求面积");
        c.setLayout(null);
        c.setVisible(true);
        c.setSize(400,400);
        c.add(lab1);
        c.add(bt);
        c.add(tf1);
        c.add(tf2);
        lab1.setBounds(40, 90, 110, 35);
        tf1.setBounds(170, 90, 110, 35);
        bt.setBounds(40, 180, 110, 35);
        tf2.setBounds(170, 180, 110, 35);
        bt.addActionListener(c); //注册事件监听器
        c.addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent e){
                System.exit(0);
            }
        });  //添加一个监听器,重写windowClosing方法,才能关闭窗口

    }
    public void actionPerformed(ActionEvent e){
        int r = Integer.parseInt(tf1.getText());
        float s = (float) ((float)r*r*Math.PI);
        String str = String.valueOf(s);
        tf2.setText(str);

    }

}

 

运行结果截图:

 

2.在窗体上创建3个文本框,两个用于输入运算对象,另一个用于存放计算结果,下拉列表框选择四则运算符号。

源代码:

package homework.实验11_图形用户界面;

import java.awt.Button;
import java.awt.Choice;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.*;


public class calculated extends JFrame {
    private static final long serialVersionUID = 1L;
    JTextField num1 = new JTextField();
    JTextField num2 = new JTextField();
    JTextField total = new JTextField();
    static Choice ch = new Choice();

    public static void main(String[] args){
        calculated c = new calculated();
        c.setTitle("计算器");
        c.operation();
        c.setBackground(Color.cyan);
        c.setSize(400,300);
        c.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  //关闭窗口
    }

    public void operation(){
        ch.add("+");
        ch.add("-");
        ch.add("*");
        ch.add("/");
        num1.setColumns(5);  //设置此文本框的列数
        num2.setColumns(5);
        total.setColumns(5);
        setLayout(new FlowLayout());  //采用流式布局管理器
        Button bt = new Button("=");
        bt.setBackground(Color.cyan);
        bt.addActionListener(new MyListener(this));  //bt注册事件监听器
        ch.addItemListener(new ChoiceHandler());   //ch注册事件监听器
        add(num1);  //将文本框加入到窗体
        add(ch);
        add(num2);
        add(bt);
        add(total);
        setVisible(true); //设置窗体可见
    }

}
    class MyListener implements ActionListener {
    private calculated mulp;
    public MyListener(calculated mulp){
        this.mulp = mulp;
    }
        @Override
        public void actionPerformed(ActionEvent e) {
            try {
                String s1 = mulp.num1.getText();
                String s2 = mulp.num1.getText();
                int i1 = Integer.parseInt(s1);
                int i2 = Integer.parseInt(s2);
                String itm;
                itm = ChoiceHandler.itml;
                if(itm.equals("+")){
                    mulp.total.setText(String.valueOf(i1+i2));
                }else if(itm.equals("-")){
                    mulp.total.setText(String.valueOf(i1-i2));
                }else if(itm.equals("*")){
                    mulp.total.setText(String.valueOf(i1*i2));
                }else if(itm.equals("/")){
                    mulp.total.setText(String.valueOf(i1/i2));
                }
            }catch(Exception e2){
                JOptionPane.showMessageDialog(null,"除数不能为0");
            }

        }
    }


class ChoiceHandler implements ItemListener {
    static String itml;
    @Override
    public void itemStateChanged(ItemEvent e) {
        itml = calculated.ch.getSelectedItem();
    }
}

运行结果截图:

实验小结

     swing:在awt的基础上建立的一套图形界面系统,属于Javax扩展包下。其中提供了更多的组件。而且完全由Java实现增强了移植性,属轻量级控件。

        GUI API包含的类可以分为三个组:组件类(component class),容器类(container class),辅助类(helper class).它们的体系结构如下:

 

猜你喜欢

转载自blog.csdn.net/qq_45176548/article/details/112393400
今日推荐