实验8 图形界面程序设计.docx
- 文档编号:27110937
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:16
- 大小:214.21KB
实验8 图形界面程序设计.docx
《实验8 图形界面程序设计.docx》由会员分享,可在线阅读,更多相关《实验8 图形界面程序设计.docx(16页珍藏版)》请在冰豆网上搜索。
实验8图形界面程序设计
山西大学计算机与信息技术学院
实验报告
姓名
学号
专业班级
软件工程1班
课程名称
Java实验
实验日期
2013/12/4
成绩
指导教师
批改日期
实验名称
实验8图形界面程序设计
一、实验目的
掌握常用GUI控制组件及其事件处理。
二、实验内容
1.编程包含一个标签和一个按钮,单击按钮时,标签的内容在“你好”和“再见”之间切换。
程序代码:
importjava.awt.*;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.*;
publicclassTest1extendsJFrame{
privateJButtonjbtOK;
privateJLabeljlbName;
publicTest1(){
jbtOK=newJButton("OK");
jlbName=newJLabel("你好!
");
Panelpanel=newPanel();
panel.add(jlbName,BorderLayout.NORTH);
panel.add(jbtOK,BorderLayout.SOUTH);
add(panel);
OKListenerClassm=newOKListenerClass();
jbtOK.addActionListener(m);
}
classOKListenerClassimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
jlbName.setText("再见");
}
}
publicstaticvoidmain(String[]args){
JFrameframe=newTest1();
frame.setTitle("Test1");
frame.setSize(200,150);
frame.setLocation(200,100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
运行结果贴图:
2.编程包含一个文本框和一个文本区域,文本框内容改变时,将文本框中的内容显示在文本区域中;在文本框中按回车键时,清空文本区域的内容。
程序代码:
packageshiyan8;
importjava.awt.*;
importjava.awt.event.KeyEvent;
importjava.awt.event.KeyListener;
importjavax.swing.*;
publicclassShowTextextendsJFrame{
privateJTextFieldjtext;
privateJLabeljlbName;
publicShowText(){
jtext=newJTextField(8);
jlbName=newJLabel("原文本");
Panelpanel=newPanel();
Panelpanel1=newPanel();
panel.add(jlbName);
panel1.add(jtext);
add(panel,BorderLayout.CENTER);
add(panel1,BorderLayout.NORTH);
TextTom=newTextTo();
jtext.addKeyListener(m);
}
classTextToimplementsKeyListener{
publicvoidkeyPressed(KeyEvente){
}
publicvoidkeyReleased(KeyEvente){
if(e.getKeyChar()!
=KeyEvent.VK_ENTER){
jlbName.setText(jtext.getText());
}
}
publicvoidkeyTyped(KeyEvente){
if(e.getKeyChar()==KeyEvent.VK_ENTER){
jlbName.setText(null);
}
}
}
publicstaticvoidmain(String[]args){
JFrameframe=newShowText();
frame.setTitle("ShowText");
frame.setSize(200,150);
frame.setLocation(200,100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
运行结果贴图:
3.编程包含一个复选按钮和一个普通按钮,复选按钮选中时,普通按钮的背景色为青色,未选中时为灰色。
程序代码:
importjava.awt.*;
importjava.awt.event.ItemEvent;
importjava.awt.event.ItemListener;
importjavax.swing.*;
publicclassShowGreenextendsJFrame{
privateJButtonjbutton;
privateJCheckBoxjchkBold;
publicShowGreen(){
jbutton=newJButton("你好!
");
jchkBold=newJCheckBox();
jbutton.setBackground(Color.GRAY);
Panelpanel=newPanel();
Panelpanel1=newPanel();
panel.add(jchkBold);
panel1.add(jbutton);
add(panel,BorderLayout.CENTER);
add(panel1,BorderLayout.NORTH);
ShowTom=newShowTo();
jchkBold.addItemListener(m);
}
classShowToimplementsItemListener{
publicvoiditemStateChanged(ItemEventarg0){
if(jchkBold.isSelected()){
jbutton.setBackground(Color.CYAN);
}
else{
jbutton.setBackground(Color.GRAY);
}
}
}
publicstaticvoidmain(String[]args){
JFrameframe=newShowGreen();
frame.setTitle("ShowGreen");
frame.setSize(200,150);
frame.setLocation(200,100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
运行结果贴图:
4.编程包含两个按钮和一个标签,将发生单击事件的按钮上的文本信息显示在标签中。
提示:
关键代码如下:
b1.addActionListener(newB1());
b2.addActionListener(newB2());
classB1implementsActionListener{
publicvoidactionPerformed(ActionEvente){
who.setText("Button1");
}
}
classB2implementsActionListener{
publicvoidactionPerformed(ActionEvente){
who.setText("Button2");
}
}
程序代码:
packageshiyan8;
importjava.awt.*;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.*;
publicclassTwoButtonextendsJFrame{
privateJButtonb1;
privateJButtonb2;
privateJLabell;
publicTwoButton(){
b1=newJButton("确定");
b2=newJButton("取消");
l=newJLabel("文本");
Panelpanel=newPanel();
Panelpanel1=newPanel();
panel.add(l);
panel1.add(b1);
panel1.add(b2);
add(panel,BorderLayout.NORTH);
add(panel1,BorderLayout.CENTER);
b1.addActionListener(newB1());
b2.addActionListener(newB2());
}
classB1implementsActionListener{
publicvoidactionPerformed(ActionEvente){
l.setText(b1.getText());
}
}
classB2implementsActionListener{
publicvoidactionPerformed(ActionEvente){
l.setText(b2.getText());
}
}
publicstaticvoidmain(String[]args){
JFrameframe=newTwoButton();
frame.setTitle("TwoButton");
frame.setSize(200,150);
frame.setLocation(200,100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
运行结果贴图:
5.编程确定当前鼠标的位置坐标。
程序代码:
packageshiyan8;
importjava.awt.event.MouseEvent;
importjava.awt.event.MouseMotionListener;
importjavax.swing.*;
publicclassMouseextendsJFrame{
privateJLabeljlbName;
publicMouse(){
jlbName=newJLabel("显示区域");
add(jlbName);
MouseTom=newMouseTo();
jlbName.addMouseMotionListener(m);
}
classMouseToimplementsMouseMotionListener{
publicvoidmouseDragged(MouseEvente){
}
publicvoidmouseMoved(MouseEvente){
jlbName.setText("鼠标当前的坐标为:
("+e.getX()+","+e.getY()+")");
}
}
publicstaticvoidmain(String[]args){
JFrameframe=newMouse();
frame.setTitle("Mouse");
frame.setSize(200,150);
frame.setLocation(200,100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
运行结果贴图:
6.编程使用BorderLayout布局方式放置5个按钮。
程序代码:
packageshiyan8;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjava.awt.BorderLayout;
publicclassShowBorderLayoutextendsJFrame{
publicShowBorderLayout(){
setLayout(newBorderLayout(5,10));
add(newJButton("East"),BorderLayout.EAST);
add(newJButton("South"),BorderLayout.SOUTH);
add(newJButton("West"),BorderLayout.WEST);
add(newJButton("North"),BorderLayout.NORTH);
add(newJButton("Senter"),BorderLayout.CENTER);
}
publicstaticvoidmain(String[]args){
ShowBorderLayoutframe=newShowBorderLayout();
frame.setTitle("ShowBorderLayout");
frame.setSize(300,200);
frame.setLocation(200,100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
运行结果贴图:
7.编写程序,实现使用键盘上的上下左右箭头控制界面上图片的移动。
移动到边界时从界面另一侧出现。
移动过程中显示另一个图片,停止时恢复原来的图片。
程序代码:
packageshiyan8;
importjavax.swing.*;
importjava.awt.event.*;
publicclassMovePhotoextendsJFrame{
privateImageIcononeIcon=newImageIcon("D:
/eclipse/workspace/wenhui/bin/1.jpg");
privateImageIcontwoIcon=newImageIcon("D:
/eclipse/workspace/wenhui/bin/2.jpg");
privateJLabellabel;
privateJPanelp;
publicMovePhoto(){
label=newJLabel(oneIcon);
p=newJPanel();
setContentPane(p);
p.setLayout(null);
addKeyListener(newPanelListener());
label.setBounds(0,0,100,100);
p.add(label);
}
privateclassPanelListenerimplementsKeyListener{
publicvoidkeyPressed(KeyEvente){
label.setIcon(twoIcon);
intx=label.getX();
inty=label.getY();
intw=p.getWidth();
inth=p.getHeight();
if(e.getKeyCode()==KeyEvent.VK_UP){
--y;
if(y<=0){
y=h;
}
label.setBounds(x,y,100,100);
}
elseif(e.getKeyCode()==KeyEvent.VK_DOWN){
++y;
if(y>=h){
y=0;
}
label.setBounds(x,y,100,100);
}
elseif(e.getKeyCode()==KeyEvent.VK_LEFT){
x--;
if(x<=0){
x=w;
}
label.setBounds(x,y,100,100);
}
elseif(e.getKeyCode()==KeyEvent.VK_RIGHT){
x++;
if(x>=w){
x=0;
}
label.setBounds(x,y,100,100);
}
}
publicvoidkeyReleased(KeyEvente){
if(e.getKeyCode()==KeyEvent.VK_UP||
e.getKeyCode()==KeyEvent.VK_DOWN||
e.getKeyCode()==KeyEvent.VK_LEFT||
e.getKeyCode()==KeyEvent.VK_RIGHT)
label.setIcon(oneIcon);
}
publicvoidkeyTyped(KeyEvente){
}
}
publicstaticvoidmain(String[]args){
MovePhotoframe=newMovePhoto();
frame.setTitle("MovePhoto");
frame.setSize(280,280);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
运行结果贴图:
课后作业
P34412.112.312.42.512.712.12
P42615.115.3
P45516.216.316.516.616.7
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验8 图形界面程序设计 实验 图形界面 程序设计