信息工程学院Java程序设计实习报告JAVA图形用户界面实验六Java图形用户界面1.实验目的(1)掌握图形用户界面基本组件。
(2)了解如何使用布局管理器对组件进行管理。
(3)掌握Java事件处理机制。
2.实验内容实验题1 编写一个模拟计算器的程序,使用面板和网格布局,添加一个文本框,10个数字按钮(0-9),4个加减乘除按钮,一个等号按钮,一个清除按钮,要求将计算公式和结果显示在文本框中。
运行结果:实验报告的内容与格式按任课教师的要求书写。
加法:主要代码:private void initComponents() {jButton1 = new javax.swing.JButton();jButton2 = new javax.swing.JButton();jButton3 = new javax.swing.JButton();jButton4 = new javax.swing.JButton();jButton5 = new javax.swing.JButton();jButton6 = new javax.swing.JButton();jButton7 = new javax.swing.JButton();jButton8 = new javax.swing.JButton();jButton9 = new javax.swing.JButton();jButton10 = new javax.swing.JButton();jButton11 = new javax.swing.JButton();jButton12 = new javax.swing.JButton();jButton13 = new javax.swing.JButton();jButton14 = new javax.swing.JButton();jButton15 = new javax.swing.JButton();jTextField1 = new javax.swing.JTextField();setStub(null);jButton1.setText("3");jButton1.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {jButton1ActionPerformed(evt);}});jButton2.setText("1");jButton2.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {jButton2ActionPerformed(evt);}});jButton3.setText("5");jButton3.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {jButton3ActionPerformed(evt);}});jButton4.setText("2");jButton4.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {jButton4ActionPerformed(evt);}});jButton5.setText("6");jButton5.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {jButton5ActionPerformed(evt);}});jButton6.setText("8");jButton6.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {jButton6ActionPerformed(evt);}});jButton7.setText("4");jButton7.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {jButton7ActionPerformed(evt);}});jButton8.setText("7");jButton8.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {jButton8ActionPerformed(evt);}});jButton9.setText("0");jButton9.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {jButton9ActionPerformed(evt);}});jButton10.setText("9");jButton10.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {jButton10ActionPerformed(evt);}});jButton11.setText("\u00f7");jButton11.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {jButton11ActionPerformed(evt);}});jButton12.setText("\u00d7");jButton12.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {jButton12ActionPerformed(evt);}});jButton13.setText("-");jButton13.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {jButton13ActionPerformed(evt);}});jButton14.setText("+");jButton14.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {jButton14ActionPerformed(evt);}});jButton15.setText("=");jButton15.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {jButton15ActionPerformed(evt);}});实验题2 编写一个程序,有一个窗口,该窗口为BorderLayout布局。
窗口的中心添加一个Panel容器:pCenter,pCenter的布局是7行7列的GridLayout布局,pCenter 的中放置49个标签,用来显示日历。
窗口北面添加一个Panel容器pNorth,其布局是FlowLayout布局,pNorth放置两个按钮:nextMonth和previousMonth按钮,单击nextMonth,可以显示当前月的下一个月的日历;单击previousMonth按钮,可以显示当前月的上一个月的日历。
窗口的南面添加一个Panel容器pSouth,其布局是FlowLayout 布局,pSouth中放置一个标签用来显示一些信息。
运行结果如图所示。
图3.8 运行结果图[基本要求] 编写完整程序。
运行结果:主要代码:private JLabel[] buttonDay = new JLabel[42]; private JButton[] buttonWeek = new JButton[7]; private JLabel labelMonth = new JLabel();private JButton buttonLastMonth = new JButton(); private JButton buttonNextMonth = new JButton(); private JPanel pCenter=new JPanel();private JPanel pNorth=new JPanel();private JPanel pSouth=new JPanel();private JLabel time=new JLabel();public Calender() {super("Calender");setBounds(250, 200, 600, 500);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);buttonLastMonth.setText("上月");buttonLastMonth.addActionListener(this);pNorth.add(buttonLastMonth);buttonNextMonth.setText("下月");buttonNextMonth.addActionListener(this);pNorth.add(buttonNextMonth);getContentPane().add(pNorth,BorderLayout.NORTH);getContentPane().add(pCenter,BorderLayout.CENTER);pCenter.setLayout(new GridLayout(7,7));for (int i = 0; i < 7; i++) {buttonWeek[i] = new JButton();buttonWeek[i].setText(stringWeekCn[i]);pCenter.add(buttonWeek[i]);}for (int i = 0; i < 42; i++) {buttonDay[i] = new JLabel();buttonDay[i].setText(" ");pCenter.add(buttonDay[i]);}实验题3 实现如图3.9所示的布局方式功能:前两个文本框输入整型数据。