图形用户界面设计.docx
- 文档编号:17483788
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:20
- 大小:136.85KB
图形用户界面设计.docx
《图形用户界面设计.docx》由会员分享,可在线阅读,更多相关《图形用户界面设计.docx(20页珍藏版)》请在冰点文库上搜索。
图形用户界面设计
实验名称:
图形用户界面及事件处理
1、实验目的
掌握常用GUI控制组件及其事件处理。
二、实验内容
1.编写一程序,创建菜单和工具栏,如下图所示。
2.编写一程序,可以动态地改变面板上显示信息的字体,效果如图所示。
3.编写应用程序,界面显示效果是下图所示的通信录,窗口左边是JTree类对象,窗口右边是一个文本区,用来显示文字信息。
4.编写继承自JFrame类的窗口应用程序,如下图所示:
窗口的中间是一个3行、4列的表格(设置表格为不可编辑修改);窗口的南边放置按钮“求平均分”,点击该按钮则把表格中第4列的成绩取出,求平均分后并显示在弹出信息对话框中(JOptionPane)。
窗口的北边放置两个按钮“增加行”和“修改成绩”:
点击按钮“增加行”,则可在表格中新增1行,行号自动增加,并弹出输入对话框3次,用来输入并设置新行的“姓名”、“学号”和“成绩”;点击按钮“修改成绩”,则弹出输入对话框(JOptionPane),输入要要修改的哪一行的成绩,确定后弹出输入对话框输入成绩,并把指定行号的成绩修改为输入的成绩。
3、实验程序的分析和调试
(1)
importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.FlowLayout;
importjava.awt.Rectangle;
importjava.awt.Toolkit;
importjava.awt.event.InputEvent;
importjavax.swing.*;
publicclassFQQJToolBar3extendsJFrame{
publicFQQJToolBar3(){
init();
setTitle("JToolBar3");
setIconImage(Toolkit.getDefaultToolkit().createImage("E:
\\0.png"));
setBounds(400,200,450,350);
setResizable(true);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//标题窗口退出的设置
}
voidinit(){
JPanelp=newJPanel();
JToolBarbar=newJToolBar();
this.add(bar);
BorderLayoutbord=newBorderLayout();
p.setLayout(bord);
p.add("North",bar);
JMenuBarmyBar=newJMenuBar();
JMenumenu=newJMenu("File");
JMenuItemeditItem1,editItem2,editItem3,editItem4;
editItem1=newJMenuItem("New",newImageIcon("E:
\\1.png"));
editItem2=newJMenuItem("Open",newImageIcon("E:
\\2.png"));
editItem3=newJMenuItem("Close",newImageIcon("E:
\\3.png"));
editItem4=newJMenuItem("Exit",newImageIcon("E:
\\4.png"));
editItem1.setAccelerator(KeyStroke.getKeyStroke('N',InputEvent.CTRL_MASK));
editItem2.setAccelerator(KeyStroke.getKeyStroke('O',InputEvent.CTRL_MASK));
editItem3.setAccelerator(KeyStroke.getKeyStroke('L',InputEvent.CTRL_MASK));
editItem4.setAccelerator(KeyStroke.getKeyStroke('X',InputEvent.CTRL_MASK));
menu.add(editItem1);
menu.add(editItem2);
menu.add(editItem3);
menu.addSeparator();
menu.add(editItem4);
myBar.add(menu);
bar.add(myBar);
JButtonkey0=newJButton(newImageIcon("E:
\\1.png"));
JButtonkey1=newJButton(newImageIcon("E:
\\2.png"));
JButtonkey2=newJButton(newImageIcon("E:
\\3.png"));
JButtonkey3=newJButton(newImageIcon("E:
\\b.png"));
JButtonkey4=newJButton(newImageIcon("E:
\\i.png"));
JButtonkey5=newJButton(newImageIcon("E:
\\u.png"));
bar.add(key0);
bar.add(key1);
bar.add(key2);
bar.add(key3);
bar.add(key4);
bar.add(key5);
JLabellabel=newJLabel("FontType");
bar.add(label);
JComboBoxzi=newJComboBox();
zi.addItem("TimesNewRoman");
zi.addItem("宋体");
zi.addItem("黑体");
bar.add(zi);
JTextFieldtext=newJTextField();
text.setBackground(Color.white);//文本区域的背景色
this.add(text);
p.add("Center",text);
this.setContentPane(p);
this.setJMenuBar(myBar);
}
publicstaticvoidmain(String[]args){
FQQJToolBar3bar=newFQQJToolBar3();
}
}
(2)
importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.Font;
importjava.awt.Toolkit;
importjava.awt.event.ItemEvent;
importjava.awt.event.ItemListener;
importjava.awt.event.KeyEvent;
importjavax.swing.JCheckBox;
importjavax.swing.JComboBox;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
importjavax.swing.JPanel;
importjavax.swing.JTextField;
importjavax.swing.JToolBar;
publicclassFQQNAMEextendsJFrame{
JTextFieldtext;
Stringstr="宋体";
intindex=30;
publicFQQNAME(){
init();
setTitle("YourName");
setIconImage(Toolkit.getDefaultToolkit().createImage("E:
\\0.png"));
setBounds(400,200,450,350);
setResizable(true);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//标题窗口退出的设置
}
voidinit(){
JPanelp=newJPanel();
JToolBarbar=newJToolBar();
this.add(bar);
BorderLayoutbord=newBorderLayout();
p.setLayout(bord);
p.add("North",bar);
JLabellabel1=newJLabel("FontName");
bar.add(label1);
finalJComboBoxzi=newJComboBox();
zi.addItem("SansSerif");
zi.addItem("TimesNewRoman");
zi.addItem("宋体");
zi.addItemListener(newItemListener(){
publicvoiditemStateChanged(finalItemEvente){
Stringstr=zi.getSelectedItem().toString();
if(str.equalsIgnoreCase("SansSerif")){
text.setFont(newFont("SansSerif",Font.BOLD,index));}
elseif(str.equalsIgnoreCase("TimesNewRoman"))
text.setFont(newFont("TimesNewRoman",Font.BOLD,index));
elseif(str.equalsIgnoreCase("宋体"))
text.setFont(newFont("宋体",Font.BOLD,index));
}
});
bar.add(zi);
JLabellabel2=newJLabel("FontName");
bar.add(label2);
finalJComboBoxziti=newJComboBox();
for(inti=10;i<=30;i++)
ziti.addItem(i);
ziti.addItemListener(newItemListener(){
publicvoiditemStateChanged(finalItemEvente){
index=Integer.parseInt(ziti.getSelectedItem().toString());
text.setFont(newFont(str,Font.BOLD,index));
}
});
bar.add(ziti);
text=newJTextField("JavaisCool");
text.setBackground(Color.yellow);//文本区域的背景色
text.setFont(newFont("宋体",Font.BOLD,30));
text.setHorizontalAlignment(JTextField.CENTER);//文字右对齐
this.add(text);
p.add("Center",text);
JCheckBoxbox1=newJCheckBox("Centered");
JCheckBoxbox2=newJCheckBox("Bold");
JCheckBoxbox3=newJCheckBox("Italic");
box1.setSelected(true);
box2.setSelected(true);
box1.setFont(newFont("宋体",Font.BOLD,16));
box2.setFont(newFont("宋体",Font.BOLD,16));
box3.setFont(newFont("宋体",Font.BOLD,16));
box1.setMnemonic(KeyEvent.VK_C);
box2.setMnemonic(KeyEvent.VK_B);
box3.setMnemonic(KeyEvent.VK_I);//用来给按钮设置助记符
JPanelsp=newJPanel();
sp.add(box1);
sp.add(box2);
sp.add(box3);
p.add("South",sp);
this.setContentPane(p);
}
publicstaticvoidmain(String[]args){
FQQNAMEname=newFQQNAME();
}
}
(3)
importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.Font;
importjava.awt.Rectangle;
importjava.awt.Toolkit;
importjavax.swing.*;
importjavax.swing.border.Border;
importjavax.swing.event.*;
importjavax.swing.tree.DefaultMutableTreeNode;
publicclassFQQTXLextendsJFrame{
JTabletabel;
JTreetree=null;
publicFQQTXL(){
init();
setTitle("我的通讯录");
setIconImage(Toolkit.getDefaultToolkit().createImage("E:
\\0.png"));
setBounds(400,200,400,300);
setResizable(true);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//标题窗口退出的设置
}
voidinit(){
DefaultMutableTreeNodenode1=newDefaultMutableTreeNode("小学同学");
node1.add(newDefaultMutableTreeNode(newtongxue("小花")));
node1.add(newDefaultMutableTreeNode(newtongxue("小虎")));
node1.add(newDefaultMutableTreeNode(newtongxue("小龙")));
DefaultMutableTreeNodenode2=newDefaultMutableTreeNode("中学同学");
node2.add(newDefaultMutableTreeNode(newtongxue("小叶")));
node2.add(newDefaultMutableTreeNode(newtongxue("小雯")));
node2.add(newDefaultMutableTreeNode(newtongxue("小夏")));
DefaultMutableTreeNodenode3=newDefaultMutableTreeNode("大学同学");
node3.add(newDefaultMutableTreeNode(newtongxue("张三")));
node3.add(newDefaultMutableTreeNode(newtongxue("李四")));
node3.add(newDefaultMutableTreeNode(newtongxue("李佳")));
DefaultMutableTreeNodetop=newDefaultMutableTreeNode("同学录");
top.add(node1);
top.add(node2);
top.add(node3);
finalJTreetree=newJTree(top);
add(tree);
JPanelp=newJPanel();
BorderLayoutbord=newBorderLayout();
p.setLayout(bord);
finalJTextAreatext=newJTextArea();
text.setBackground(Color.white);//文本区域的背景色
text.setFont(newFont("宋体",Font.BOLD,15));
//text.setHorizontalAlignment(JTextField.LEFT);//文字右对齐
add(text);
p.add("Center",text);
p.add("West",tree);
this.setContentPane(p);
tree.addTreeSelectionListener(newTreeSelectionListener(){
@Override
publicvoidvalueChanged(TreeSelectionEvente){
DefaultMutableTreeNodenode=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
if(node==null)
return;
Objectobject=node.getUserObject();
if(node.isLeaf()){
tongxuetong=(tongxue)object;
text.setText("\n"+"\n"+""+tong.toString()+"\n"+"联系电话:
"+tong.toPhone()+"\n"+"通信地址:
"+tong.toAddress()+"\n"+"电子邮件:
"+tong.email);
}}});
}
publicstaticvoidmain(String[]args){
FQQTXLtxl=newFQQTXL();
}
}
publicclasstongxue{
Stringname="张三";
Stringphone="(010)8888888";
Stringaddress="燕山大学理学院";
Stringemail="23543424@";
publictongxue(Stringname){
this.name=name;
}
publicStringtoString(){
returnname;
}
publicStringtoPhone(){
returnphone;
}
publicStringtoAddress(){
returnaddress;
}
publicStringtoEmail(){
returnemail;
}
}
(4)
importjava.awt.BorderLayout;
importjava.awt.FlowLayout;
importjava.awt.Font;
importjava.awt.Toolkit;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.text.DecimalFormat;
importjavax.swing.*;
importjavax.swing.table.DefaultTableModel;
publicclassFQQBGextendsJFrame{
introws=3;
Object[]name={"行号","姓名","学号","成绩"};
Object[][]a={{newInteger(0),"Mary",newInteger(111111),newInteger(92)},{newInteger
(1),"Jack",newInteger(222222),newInteger(82)},{newInteger
(2),"Tom",newInteger(333333),newInteger(58)}};
DefaultTableModeltableModel=newDefaultTableModel(a,name);
JTabletable=newJTable(tableModel);
DecimalFormatdf=newDecimalFormat("#.00");//设置保留两位小数
publicFQQBG(){
init();
setTitle("表格使用");
setIconImage(Toolkit.getDefaultToolkit().createImage("E:
\\0.png"));
setBounds(400,200,400,300);
setResizable(true);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//标题窗口退出的设置
}
v
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图形 用户界面 设计