Java图形用户界面.doc_第1页
Java图形用户界面.doc_第2页
Java图形用户界面.doc_第3页
Java图形用户界面.doc_第4页
Java图形用户界面.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验六Java图形用户界面1实验目的(1)掌握图形用户界面基本组件。(2)了解如何使用布局管理器对组件进行管理。(3)掌握Java事件处理机制。2实验内容实验题1 编写一个模拟计算器的程序,使用面板和网格布局,添加一个文本框,10个数字按钮(0-9),4个加减乘除按钮,一个等号按钮,一个清除按钮,要求将计算公式和结果显示在文本框中。基本要求 编写完整程序实验题2 编写一个程序,有一个窗口,该窗口为BorderLayout布局。窗口的中心添加一个Panel容器:pCenter,pCenter的布局是7行7列的GridLayout布局,pCenter的中放置49个标签,用来显示日历。窗口北面添加一个Panel容器pNorth,其布局是FlowLayout布局,pNorth放置两个按钮:nextMonth和previousMonth按钮,单击nextMonth,可以显示当前月的下一个月的日历;单击previousMonth按钮,可以显示当前月的上一个月的日历。窗口的南面添加一个Panel容器pSouth,其布局是FlowLayout布局,pSouth中放置一个标签用来显示一些信息。运行结果如图所示。1)、import java.util.*;import javax.swing.*;public class Dateint td;int daysOfMonth;ArrayList list;public Date(int year,int month)int td = 0;int dayOfMonth = 0;for (int i = 1900; i year; i+) if (i % 4 = 0) & (i % 100 != 0) | (i % 400 = 0) td+= 366; else td+=365;for (int m = 1; m = month; m+) if (m = 1 | m = 3 | m = 5 | m = 7| m = 8 | m = 10 | m = 12) dayOfMonth = 31; else if (m = 2) if (year % 4 = 0) & (year % 100 != 0) | (year % 400 = 0) dayOfMonth = 29; else dayOfMonth = 28; else dayOfMonth = 30;if (m month) td+=dayOfMonth;int temp = (td % 7); list = new ArrayList();for (int p = 0; p temp; p+) list.add(0);for (int w = 1; w = dayOfMonth; w+) list.add(w);for(int w = dayOfMonth + 1;w = 41;w+)list.add(0); 2)、import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;public class Calendar extends JFrame implements ActionListener private JButton nextMonth;private JButton previousMonth;private JLabel rlabel;int month = 10;int year = 2007;private static JLabel label;public Calendar() init();void init() Container container = this.getContentPane();container.setLayout(new BorderLayout();JPanel pNorth = new JPanel();pNorth.setLayout(new FlowLayout();nextMonth = new JButton(下月);nextMonth.addActionListener(this);previousMonth = new JButton(上月);previousMonth.addActionListener(this);pNorth.add(previousMonth);pNorth.add(nextMonth);container.add(pNorth, BorderLayout.NORTH);JPanel pCenter = new JPanel();pCenter.setLayout(new GridLayout(6, 7);container.add(pCenter, BorderLayout.CENTER);label = new JLabel77;for (int i = 0; i 6; i+) for (int j = 0; j 7; j+) labelij = new JLabel();labelij.setHorizontalAlignment(JLabel.CENTER);if (i = 0) if (j = 6) labelij.setForeground(Color.green);labelij.setBorder(new LineBorder(Color.black);labelij.setBackground(Color.BLUE); else labelij.setForeground(Color.green);labelij.setBorder(new LineBorder(Color.black); labelij.setText(null);pCenter.add(labelij);label00.setText(一);label01.setText(二);label02.setText(三);label03.setText(四);label04.setText(五);label05.setText(六);label06.setText(日);container.add(pCenter, BorderLayout.CENTER);JPanel pSouth = new JPanel();rlabel = new JLabel(日历: + year + 年 + month + 月);pSouth.add(rlabel);container.add(pSouth, BorderLayout.SOUTH);this.setVisible(true);this.setBounds(200, 200, 500, 300);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public static void main(String args) new Calendar();Date date = new Date(2007, 10);int k = 0;for (int i = 1; i 6; i+) for (int j = 0; j = 12) year += 1;month = 1; else month += 1;rlabel.setText(日历: + year + 年 + month + 月);Date date = new Date(year, month);int k = 0;for (int i = 1; i 6; i+) for (int j = 0; j 7; j+) int m = date.list.get(k);if (m = 0) labelij.setText(); else labelij.setText( + m);k+;if (e.getActionCommand().equals(上月) if (month = 1) year -= 1;month = 12; else month -= 1;rlabel.setText(日历: + year + 年 + month + 月);Date date = new Date(year, month);int k = 0;for (int i = 1; i 6; i+) for (int j = 0; j 7; j+) int m = date.list.get(k);if (m = 0) labelij.setText(); else labelij.setText( + m);k+;实验题3 实现如图3.9所示的布局方式功能:前两个文本框输入整型数据。第三个文本框存放前两个文本框数据之和。要求如下:第一个文本框的数据是100,200,如果超出该范围弹出对话框提示用户。弹出提示对话框的时刻是光标离开第一个文本框时。代码如下:import java.awt.BorderLayout;import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import javax.swing.JTextField;import javax.swing.SwingConstants;import java.awt.event.FocusAdapter;import java.awt.event.FocusEvent;public class qiuhe extends JFrame private JPanel contentPane;private JTextField tf1;private JTextField tf2;private JTextField tf3;/* * Launch the application. */public static void main(String args) EventQueue.invokeLater(new Runnable() public void run() try TF frame = new TF();frame.setVisible(true); catch (Exception e) e.printStackTrace(););/* * Create the frame. */public TF() setTitle(TextFieldTest);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 450, 300);contentPane = new JPanel();contentPane.setToolTipText();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5);contentPane.setLayout(new BorderLayout(0, 0);setContentPane(contentPane);JPanel panel = new JPanel();panel.setToolTipText(1);contentPane.add(panel, BorderLayout.CENTER);panel.setLayout(null);tf1 = new JTextField();tf1.addFocusListener(new FocusAdapter() Overridepublic void focusLost(FocusEvent arg0) int x=Integer.parseInt(tf1.getText();if(x200)JOptionPane.showMessageDialog(null, 输入范围是100,200);tf1.setText(null);Overridepublic void focusGained(FocusEvent e) tf1.setText(null););tf1.setHorizontalAlignment(SwingConstants.CENTER);tf1.setText(Input Integer 1);tf1.setToolTipText();tf1.setBounds(134, 13, 148, 46);panel.add(tf1);tf1.setColumns(10);tf2 = new JTextField();tf2.addFocusListener(new FocusAdapter() Overridepublic void focusGained(FocusEvent e) tf2.setText(null););tf2.setHorizontalAlignment(SwingConstants.CENTER);tf2.setText(Input Integer 2);tf2.setBounds(134, 81, 148, 46);panel.add(tf2);tf2.setColumns(10);tf3 = new JTextField();tf3.addFocusListener(new FocusAdapter() Overridepublic void focusGained(FocusEvent e) int x=Integer.parseInt(tf1.getText();int y=Integer.parseInt(tf2.getText();int sum=x+y;tf3.setText(Integer.toString(sum););tf3.setHorizontalAlignment(SwingConstants.CENTER);tf3.setText(Get result);tf3.setBounds(134, 161, 148, 46);panel.add(tf3);tf3.setColumns(10); 实验题4 编写一个显示图像文件的Application应用程序,在该程序JFrame窗体中添加JPanel面板和一个JToolBar工具栏,在工具栏上添加一个JButton“打开”按扭,单击“打开”按纽,弹出JFileChooser文件打开选择对话框,选择图像文件后将其显示在JPnel面板中。实验题5使用SWT技术完成图3.10 所示图形界面的制作。要求“查询结果”用group组件。代码如下:import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import javax.swing.JLabel;import java.awt.Font;import javax.swing.SwingConstants;import javax.swing.JTextField;import javax.swing.JButton;import javax.swing.GroupLayout;import javax.swing.GroupLayout.Alignment;import javax.swing.LayoutStyle.ComponentPlacement;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;public class Qury extends JFrame private JPanel panel;private JTextField tf1;private JLabel label1;private JButton b1;private JButton b2;private JLabel label3;private JLabel label4;private JLabel label5;private JTextField tf2;private JTextField tf3;private JTextField tf4;/* * Launch the application. */public static void main(String args) EventQueue.invokeLater(new Runnable() public void run() try Qury frame = new Qury();frame.setVisible(true); catch (Exception e) e.printStackTrace(););/* * Create the frame. */public Qury() setTitle(u6309u5B66u53F7u67E5u8BE2);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 450, 450);panel = new JPanel();panel.setToolTipText();panel.setBorder(new EmptyBorder(5, 5, 5, 5);setContentPane(panel);label1 = new JLabel(u8BF7u8F93u5165u5B66u53F7uFF1A);label1.setHorizontalAlignment(SwingConstants.CENTER);label1.setFont(new Font(华文新魏, Font.PLAIN, 18);tf1 = new JTextField();tf1.setHorizontalAlignment(SwingConstants.CENTER);tf1.setColumns(10);b1 = new JButton(u786Eu5B9A);b1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) String id=tf1.getText();String students=2009012873,张三,20,2009012874,李四,21,2009012875,王五,19,2009012876,刘文,20;for(int i=0;istudents.length;i+)if(id.equals(studentsi0)tf2.setText(studentsi0);tf3.setText(studentsi1);tf4.setText(studentsi2);break;);b1.setFont(new Font(楷体, Font.PLAIN, 18);b2 = new JButton(u91CDu7F6E);b2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) tf1.setText(null);tf2.setText(null);tf3.setText(null);tf4.setText(null););b2.setFont(new Font(楷体, Font.PLAIN, 18);JLabel label2 = new JLabel(u67E5u8BE2u7ED3u679C:);label2.setHorizontalAlignment(SwingConstants.CENTER);label3 = new JLabel(u5B66u53F7uFF1A);label3.setFont(new Font(华文新魏, Font.PLAIN, 20);label3.setHorizontalAlignment(SwingConstants.CENTER);label4 = new JLabel(u59D3u540DuFF1A);label4.setHorizontalAlignment(SwingConstants.CENTER);label4.setFont(new Font(华文新魏, Font.PLAIN, 20);label5 = new JLabel(u5E74u9F84uFF1A);label5.setFont(new Font(华文新魏, Font.PLAIN, 20);label5.setHorizontalAlignment(SwingConstants.CENTER);tf2 = new JTextField();tf2.setHorizontalAlignment(SwingConstants.CENTER);tf2.setColumns(10);tf3 = new JTextField();tf3.setHorizontalAlignment(SwingConstants.CENTER);tf3.setColumns(10);tf4 = new JTextField();tf4.setHorizontalAlignment(SwingConstants.CENTER);tf4.setColumns(10);GroupLayout groupLayout = new GroupLayout(panel);groupLayout.setHorizontalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addGap(55, 55, 55).addGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addComponent(label1, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE).addGap(38, 38, 38).addGroup(groupLayout.createParallelGroup(Alignment.TRAILING).addComponent(b1, GroupLayout.PREFERRED_SIZE, 113, GroupLayout.PREFERRED_SIZE).addComponent(label4, GroupLayout.DEFAULT_SIZE, 151, Short.MAX_VALUE).addComponent(label3, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 151, Short.MAX_VALUE).addComponent(label5, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 151, Short.MAX_VALUE).addGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addGap(21, 21, 21).addComponent(b2, GroupLayout.PREFERRED_SIZE, 113, GroupLayout.PREFERRED_SIZE).addComponent(tf1, GroupLayout.PREFERRED_SIZE, 134, GroupLayout.PREFERRED_SIZE).addGroup(groupLayout.createSequentialGroup().addPreferredGap(ComponentPlacement.RELATED).addGroup(groupLayout.createParallelGroup(Alignment.LEADING).addComponent(tf3, Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 151, Short.MAX_VALUE).addComponent(tf2, GroupLayout.DEFAULT_SIZE, 151, Short.MAX_VALUE).addGroup(Alignment.TRAILING, groupLayout.createSequentialGroup().addComponent(tf4, GroupLayout.DEFAULT_SIZE, 151, Short.MAX_VALUE).addPreferredGap(ComponentPlacement.RELATED).addGroup(groupLayout.createSequentialGroup().addContainerGap().addComponent(label2, GroupLayout.PREFERRED_SIZE, 81, GroupLayout.PREFERRED_SIZE).addGap(57, 57, 57);groupLayout.setVerticalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addGap(8, 8, 8).addGroup(groupLayout.createParallelGroup(Alignment.LEADING).addComponent(label1, GroupLayout.PREFERRED_SIZE, 30, GroupLayout.PREFERRED_SIZE).addComponent(tf1, GroupLayout.PREFERRED_SIZE, 30, GroupLayout.PREFERRED_SIZE).addGap(31, 31, 31).addGroup(groupLayout.createParallelGroup(Alignment.LEADING).addComponent(b1, GroupLayout.PREFERRED_SIZE, 27, GroupLayout.PREFERRED_SIZE).addComponent(b2, GroupLayout.PREFERRED_SIZE, 27, GroupLayout.PREFERRED_SIZE).addGap(21, 21, 21).addComponent(label2, GroupLayout.PREFERRED_SIZE, 29, GroupLayout.PREFERRED_SIZE).addGap(22, 22, 22).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(label3, GroupLayout.PREFERRED_SIZE, 32, GroupLayout.PREFERRED_SIZE).addComponent(tf2, GroupLayout.PREFERRED_SIZE, 34, GroupLayout.PREFERRED_SIZE).addGap(28, 28, 28).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(label4, GroupLayout.PREFERRED_SIZE, 26, GroupLayout.PREFERRED_SIZE).addComponent(tf3, GroupLayout.PREFERRED_SIZE, 36, GroupLayout.PREFERRED_SIZE).addGap(31, 31, 31).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(label5, GroupLayout.PREFERRED_SIZE, 34, GroupLayout.PREFERRED_SIZE).addComponent(tf4, GroupLayout.PREFERRED_SIZE, 35, GroupLayout.PREFERRED_SIZE).addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE);panel.setLayout(groupLayout);实验题6 使用SWT技术完成图3.11所示学籍管理主界面的设计与制作。代码如下import java.awt.BorderLayout;import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import java.awt.Font;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.SwingConstants;import javax.swing.JMenu;import javax.swing.JLabel;import java.awt.Color;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;public class xueji extends JFrame private JPanel contentPane;/* * Launch the application. */public static void main(String args) EventQueue.invokeLater(new Runnable() public void run() try xueji frame = new xueji();frame.setVisible(true); catch (Exception e) e.printStackTrace(););/* * Create the frame. */public xueji() setFont(new Font(华文新魏, Font.PLAIN, 20);setTitle(u5B66u7C4Du7BA1u7406u7CFBu7EDF);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 450, 300);JMenuBar menuBar = new JMenuBar();setJMenuBar(menuBar);JMenu menu1 = new JMenu(u7CFBu7EDFu767Bu5F55);menu1.setHorizontalAlignment(SwingConstants.CENTER);menuBar.add(menu1);JMenuItem menuItem1 = new JMenuItem(u7528u6237u767Bu5F55);menuItem1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) );menu1.add(menuItem1);JMenuItem menuItem2 = new JMenuItem(u9000u51FA);menuItem2.setSelected(true);menu1.add(menuItem2);JMenu menu2 = new JMenu(u7528u6237u7BA1u7406);menu2.setHorizontalAlignment(SwingConstants.CENTER);menuBar.add(menu2);JMenu menu3 = new JMenu(u5B66u7C4Du7BA1u7406);menu3.setHorizontalAlignment(SwingConstants.CENTER);menuBar.add(menu3);JMenu menu4 = new JMenu(u5173u4E8E);menu4.setHorizontalAlignment(SwingConstants.CENTER);menuBar.add(menu4);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5);contentPane.setLayout(new BorderLayout(0, 0);setContentPane(contentPane);JLabel label = new JLabel(u6B22u8FCEu4F7Fu7528u5B66u7C4Du7BA1u7406u7CFBu7EDF);label.setForeground(new Color(204, 51, 0);label.setFont

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论