實驗內容:
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).它們的體系結構如下:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/247189.html
標籤:java
上一篇:Java入門程式
