java图形用户界面设计-oracle用户图形界面
发布时间:2023-06-05 11:11 浏览次数:次 作者:佚名
实验目的
掌握Java图形组件和布局管理器的使用;掌握使用Java事件处理机制的使用;掌握图形界面的各种控件的使用,如:标签、文本框、按钮、复选框、列表框、窗框等;掌握菜单、弹出式菜单设计。
实验性质
验证性实验+设计性实验
实验内容 (1)分析调试教材第8章中的实例
略。
(2)设计一个简单计算器
设计一个简单计算器,如下图所示。在“操作数”标签右侧的两个文本框输入操作数,当单击操作符+,-,×java图形用户界面设计,÷按钮时java图形用户界面设计,对两个操作数进行运算并将结果填入到“结果”标签右侧的文本框中。
import javax.swing.JFrame;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
public class example {
public static void main(String[] args) {
new LoginFrame();
}
}
class LoginFrame extends JFrame {
JTextField num1;
JTextField num2;
JTextField num3;
JPanel p;
public LoginFrame(){
this.setBounds(300, 300, 280, 200);
this.setTitle("轩哥牌计算器");
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Font ft=new Font("宋体",Font.PLAIN,24) ;
JLabel A=new JLabel("操作数:");
A.setFont(ft);
JLabel B=new JLabel("操作数:");
B.setFont(ft);
JLabel consequent=new JLabel("结果:");
consequent.setFont(ft);
num1=new JTextField(10);
num1.setFont(ft);
num2=new JTextField(10);
num2.setFont(ft);
num3=new JTextField(10);
num3.setFont(ft);
JButton ok=new JButton();
ok.setText("+");
ok.setActionCommand("+");
ok.setFont(ft);
ok.addActionListener(new OKAction());
ActionListener al=new OKAction();
ok.addActionListener(al);
//事件,事件源,对事件源添加相应的事件监听器,编写事件处理类(实现事件监听器接口,重写其抽象方法):内部类)
JButton ok2=new JButton("-");
ok2.setActionCommand("-");
ok2.setFont(ft);
ok2.addActionListener(new OKAction());
JButton ok3=new JButton("*");
ok3.setActionCommand("*");
ok3.setFont(ft);
ok3.addActionListener(new OKAction());
JButton ok4=new JButton("/");
ok4.setActionCommand("/");
ok4.setFont(ft);
ok4.addActionListener(new OKAction());
p=new JPanel();
p.setBackground(new Color(255,255,255));
p.add(A);
p.add(num1);
p.add(B);
p.add(num2);
p.add(ok);
p.add(ok2);
p.add(ok3);
p.add(ok4);
p.add(consequent);
p.add(num3);
this.add(p);
this.setVisible(true);
}
class OKAction implements ActionListener{
//成员内部类 编写事件处理类(实现事件监听器接口,重写其抽象方法):内部类
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
JPanel q = new JPanel();
String cmd=arg0.getActionCommand();
switch(cmd){
case "+":{
String NUM1=num1.getText();
int num11;
num11=Integer.parseInt(NUM1);
String NUM2=new String(num2.getText());
int num22;
num22=Integer.parseInt(NUM2);
int num33=num11+num22;
String a=Integer.toString(num33);
num3.setText(a);
}
break;
case "*":{
String NUM1=num1.getText();
int num11;
num11=Integer.parseInt(NUM1);
String NUM2=new String(num2.getText());
int num22;
num22=Integer.parseInt(NUM2);
int num33=num11*num22;
String a=Integer.toString(num33);
num3.setText(a);
}
break;
case "-":{
String NUM1=num1.getText();
int num11;
num11=Integer.parseInt(NUM1);
String NUM2=new String(num2.getText());
int num22;
num22=Integer.parseInt(NUM2);
int num33=num11-num22;
String a=Integer.toString(num33);
num3.setText(a);
}
break;
case "/":{
String NUM1=num1.getText();
int num11;
num11=Integer.parseInt(NUM1);
String NUM2=new String(num2.getText());
int num22;
num22=Integer.parseInt(NUM2);
int num33=num11/num22;
String a=Integer.toString(num33);
num3.setText(a);
}
break;
}
}
}
}
(3)设计一个JAVA程序模仿记事本
设计一个JAVA程序模仿记事本(NotePad)的部分功能,界面如下图。
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class NotePad extends JFrame {
public static void main(String[] args) {
// TODO Auto-generated method stub
new NotePad();
}
public NotePad() {
Container c = getContentPane();
JTextArea ta = new JTextArea(20,50);
JScrollPane sp =new JScrollPane(ta);
c.add(sp);
setTitle("轩哥牌记事本");
setBounds(500, 200, 500, 450);
JMenuBar menupanel = new JMenuBar();
setJMenuBar(menupanel);
JMenu wenjian = new JMenu("文件");// 创建菜单对象
menupanel.add(wenjian);// 将菜单对象添加到菜单栏对象中
JMenuItem xinjian = new JMenu("新建");
JMenuItem dakai = new JMenu("打开");
JMenuItem baocun = new JMenu("保存");
JMenuItem tuichu = new JMenu("退出");
wenjian.add(xinjian);
wenjian.add(dakai);
wenjian.add(baocun);
wenjian.add(tuichu);
JMenu bianji = new JMenu("编辑");// 创建菜单对象
menupanel.add(bianji);// 将菜单对象添加到菜单栏对象中
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
(4)设计一个学生信息管理界面
学生信息有:学号(要求唯一)、姓名、性别(录入时用单选按钮选择)、出生日期(用日期时间控件录入)、专业(用组合框选择录入)、照片。录入功能:按照上述要求将若干个学生的信息存储到数组;浏览功能:利用列表框显示所有已录入学生的信息(注意显示效果的美观);查询功能:可以分别按照学号、性别、专业查询,并将查询结果显示在列表框中。(提示:定义学生信息结构体或类,将学生信息数组定义为窗体类的成员)。要求系统的使用要进行身份验证,即在开始显示主界面之前,先显示登录窗口,进行用户名和密码的检验,只有通过验证的才能看到主界面,否则3次机会后程序结束不允许使用该系统。