1、实验四实验四 图形用户界面的设计云南大学信息学院 面向对象技术导论 java程序设计大学教程 实验【开发语言及实现平台或实验环境】Windows2000 或XP,JDK1.6与Jcreator4.0 【实验目的】1 了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法2 了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。【实验要求】1. 掌握在容器中添加组件的方法,掌握使用布局管理器对组件进行管理的方法。2. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。3. 掌握编写独立运行的窗口界面的方法。4. 了解Java Swing 组
2、件的使用方法。5. 了解对话框的使用方法。【实验内容】一、进制转换程序功能:在窗口中创建单选框、文本区域、单行文本框等组件,并实现根据用户输入的10 进制数,选择不同选项可转换为2、8、16 进制数。实验代码:package bao;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Trans extends JFrame implements ActionListener ButtonGroup bg; JTextField tx1; JRadioButton r1,r2,r3,r4; JT
3、extArea jta=new JTextArea(6, 25); int op=0; public Trans() super(进制转换); this.setSize(300,300); setLayout(new FlowLayout(); add(new JLabel(输入10 进制数); tx1 = new JTextField(,6); add(tx1); add(jta); add(new JLabel(请选择进制:); r1=new JRadioButton(); r1.addActionListener(this); r2=new JRadioButton(); r2.addA
4、ctionListener(this); r3=new JRadioButton(); r3.addActionListener(this); r4=new JRadioButton(); r4.addActionListener(this); add(r1); add(new JLabel(2进制); add(r2); add(new JLabel(8进制); add(r3); add(new JLabel(16进制); add(r4); add(new JLabel(10进制); bg=new ButtonGroup(); bg.add(r1); bg.add(r2); bg.add(r3
5、); bg.add(r4); this.setVisible(true); public void actionPerformed(ActionEvent e) if(e.getSource()=r1) op=1; if(e.getSource()=r2) op=2; if(e.getSource()=r3) op=3; if(e.getSource()=r4) op=4; int a=Integer.parseInt(tx1.getText(); switch (op) case 1: jta.append(2进制值为 + Integer.toBinaryString(a)+ n); bre
6、ak; case 2: jta.append(8进制值为 + Integer.toOctalString(a) + n); break; case 3: jta.append(16进制值为 + Integer.toHexString(a) + n); break; case 4: jta.append(10进制值为 + a + n); break; default: jta.append(请选择运算符); public static void main(String args) new Trans(); 程序结果:二、简单计算器程序功能:在窗口中输入操作数1和操作数2,选择加减乘除中的一种运算
7、,点击“计算”按钮,得到结果。实验代码:import javax.swing.*;import java.awt.*;import java.awt.event.*;public class simpleCalculator extends JFrame implements ActionListener ,ItemListener ButtonGroup bg; JLabel la1; JRadioButton a1,a2,a3,a4; JTextField tf1,tf2; JButton b1; int op=0; public simpleCalculator() setTitle(简
8、单计算器); setSize(200,180); setLayout(new FlowLayout(); add(new JLabel(操作数1); tf1=new JTextField(,9); add(tf1); a1=new JRadioButton(+); add(a1); a2=new JRadioButton(-); add(a2); a3=new JRadioButton(); add(a3); a4=new JRadioButton(); add(a4); bg=new ButtonGroup(); bg.add(a1); bg.add(a2); bg.add(a3); bg.
9、add(a4); add(new JLabel(操作数2); tf2=new JTextField(,9); add(tf2); a1.addItemListener(this); a2.addItemListener(this); a3.addItemListener(this); a4.addItemListener(this); b1=new JButton(计 算); add(b1); b1.addActionListener (this); la1 =new JLabel(); add(la1); setVisible(true); addWindowListener(new Win
10、dowAdapter() public void windowClosing(WindowEvent evt) System.exit(0); ); public void itemStateChanged(ItemEvent e) if(e.getSource()=a1) op=1; if(e.getSource()=a2) op=2; if(e.getSource()=a3) op=3; if(e.getSource()=a4) op=4; public void actionPerformed(ActionEvent e) double m=Double.parseDouble(tf1.
11、getText(); double n=Double.parseDouble(tf2.getText(); double k; if(op=0) la1.setText(请选择运算符); if(op=1) k=m+n; la1.setText(+k); if(op=2) k=m-n; la1.setText(+k); if(op=3) k=m*n; la1.setText(+k); if(op=4) k=m/n; la1.setText(+k); public static void main(String args) new simpleCalculator(); 运行结果: 三、键盘鼠标响
12、应程序功能:在窗口中用鼠标左键和右键单击时,窗口下方显示哪个键被点击,坐标是多少;当键盘上某个键被点击时,窗口下方显示这个键的名称。实验代码:import java.awt.*; import javax.swing.*; import java.awt.event.*; public class mouseAndKeyboardEventDemo extends JFrame implements MouseListener JLabel s1; JFrame frame; public mouseAndKeyboardEventDemo() frame=new JFrame(); s1 =
13、new JLabel (); frame.setTitle(键盘鼠标响应); frame.setSize(320,320); frame.setVisible(true); frame.addMouseListener(this); frame.add(South, s1); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public void mousePressed(MouseEvent e) public void mouseReleased(MouseEvent e) public void mouseEntered(MouseEven
14、t e) public void mouseExited(MouseEvent e) public void mouseClicked(MouseEvent e) switch (e.getButton() case 1: s1.setText(左键被点击,坐标 (+e.getX()+, +e.getY()+); break; case 2: s1.setText(滑轮被点击,坐标 (+e.getX()+, +e.getY()+); break; case 3: s1.setText(右键被点击,坐标(+e.getX()+, +e.getY()+); break; public static void main(String args) new mouseAndKeyboardEventDemo(); 实验结果:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1