JAVA实验 图形界面设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
goodNumTF = new JTextField(20); goodNumTF.getDocument().addDocumentListener(new DocumentListener() { @Override public void removeUpdate(DocumentEvent e){ // TODO Auto-generated method stub changeTFTipsLabel(goodNumTipsLabel, goodNumTF.getText()); } @Override
广州大学学生实验报告
开课学院及实验室:计算机科学与工程实验室
学院
计算机科学与 教育软件学院
2014 年 11 月 14 日
姓名 学号
年级/专 业/班
实验课程名称 实验项目名称
Java 语言 图形界面设计
成绩 指导 老师ቤተ መጻሕፍቲ ባይዱ
一、实验目的
实验十 图形用户界面(1)
1.了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法, 2.了解如何使用布局管理器对组件进行管理,以及如何使用 Java 的事件处理机制。
} 运行结果:
↑启动画面
当输入的字符是数字,对应右边的框旁边会提示 如果输入非法字符,则会出现 X, 此时点击计算,则会弹出错误警告框。
√,
输入正确数字后,点计算按钮,得到正确结果。
2. 制作如下图所示的界面,当用户点击单选按钮时,会在一个标签上显示出当前所选
定的数据库服务器类型。
代码: import java.awt.EventQueue; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ButtonGroup; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JRadioButton; public class test_2_1_2 implements ActionListener{
public void insertUpdate(DocumentEvent e) { // TODO Auto-generated method stub changeTFTipsLabel(goodNumTipsLabel, goodNumTF.getText()); } @Override public void changedUpdate(DocumentEvent e) { // TODO Auto-generated method stub changeTFTipsLabel(goodNumTipsLabel, goodNumTF.getText()); } });
实验十 图形用户界面(1)
1. 2. 3. 4. 1. 2. 3. 4. 理解 Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。 掌握编写独立运行的窗口界面的方法。 了解 Java Swing 组件的使用方法。 了解对话框的使用方法。
实验十一 图形用户界面(2)
理解 Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。 掌握编写独立运行的窗口界面的方法。 了解 Java Swing 组件的使用方法。 了解对话框的使用方法。
//检测文本是否纯数字 public Boolean isNumber(String s){ if (s.length() == 0) return false; Boolean isNumber = true; char [] c = s.toCharArray(); for (int i = 0;i < s.length();i++){ if (Character.isDigit(c[i]) == false){ isNumber = false; break; } } return isNumber; } //弹出警告 public void showMessage(String s){ JOptionPane.showMessageDialog(null, s, "警告", JOptionPane.PLAIN_MESSAGE); } //修改文本提示 label public void changeTFTipsLabel(JLabel aLabel,String str){ // if (isNumber(str) == false){ canCal = false; aLabel.setText("X "); }else if (isNumber(goodPriceTF.getText()) || isNumber(goodNumTF.getText())){ if (isNumber(goodPriceTF.getText()) && isNumber(goodNumTF.getText())) canCal = true; aLabel.setText("√ "); }else if (str.length() == 0){ canCal = false; if (aLabel == goodPriceTipsLabel) aLabel.setText("请输入价格"); else aLabel.setText("请输入数量"); } }
private JFrame frmAsdfasdf; JLabel label; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { test_2_1_2 window = new test_2_1_2(); window.frmAsdfasdf.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the application. */ public test_2_1_2() { initialize(); } /** * Initialize the contents of the frame. */
sumPriceTF = new JTextField(20); sumPriceTF.setEditable(false); JButton btn = new JButton("计算"); btn.addActionListener(this); add(goodPriceLabel); add(goodPriceTF); add(goodPriceTipsLabel); add(goodNumLabel); add(goodNumTF); add(goodNumTipsLabel); add(sumPriceLabel); add(sumPriceTF); add(btn); setVisible(true); } public void actionPerformed(ActionEvent event){ if (event.getActionCommand().equals("计算")){ if (!canCal){ showMessage("输入的数据不合法"); return; } double sum = Double.parseDouble(goodPriceTF.getText()) * Double.parseDouble(goodNumTF.getText()); sumPriceTF.setText(Double.toString(sum)); } }
FlowLayout flo = new FlowLayout(); setLayout(flo); JLabel goodPriceLabel = new JLabel("商品价格",JLabel.RIGHT); JLabel goodNumLabel = new JLabel("商品数量",JLabel.RIGHT); JLabel sumPriceLabel = new JLabel("商品总额",JLabel.RIGHT); goodPriceTipsLabel = new JLabel("请输入价格",JLabel.RIGHT); goodNumTipsLabel = new JLabel("请输入数量",JLabel.RIGHT); goodPriceTF = new JTextField(20); goodPriceTF.getDocument().addDocumentListener(new DocumentListener() { @Override public void removeUpdate(DocumentEvent e) { // TODO Auto-generated method stub changeTFTipsLabel(goodPriceTipsLabel, goodPriceTF.getText()); } @Override public void insertUpdate(DocumentEvent e) { // TODO Auto-generated method stub changeTFTipsLabel(goodPriceTipsLabel, goodPriceTF.getText()); } @Override public void changedUpdate(DocumentEvent e) { // TODO Auto-generated method stub changeTFTipsLabel(goodPriceTipsLabel, goodPriceTF.getText()); } });
实验十一 图形用户界面(2)
1.了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法, 2.了解如何使用布局管理器对组件进行管理,以及如何使用 Java 的事件处理机制。
二、实验器材 MacBook Pro 一台 操作系统:OS X Yosemite 编程软件:eclipse 三、实验要求
四、实验过程原始数据记录
实验十 图形用户界面(1)
1. 如下图所示,用了三个文本框,第一个文本框给用户输入商品单价,第二个则是给
用户输入商品数量,第三个用于显示总金额。
代码: import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.text.BadLocationException; import javax.swing.text.Document; public class test_2_1_1 extends JFrame implements ActionListener{ public static void main(String[] args) { // TODO Auto-generated method stub test_2_1_1 good = new test_2_1_1(); } JTextField goodPriceTF; JTextField goodNumTF; JTextField sumPriceTF; JLabel goodPriceTipsLabel; JLabel goodNumTipsLabel; Boolean canCal = false; public test_2_1_1(){ super("商品价格计算器"); setSize(435, 135); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置 JFrame 是否可以改变大小。 setResizable(false); // JFrame 打开后居中。 setLocationRelativeTo(getOwner());