实验:图形用户界面
实验目的:
1.学习图形用户界面设计;
2.学习事件处理.
实验内容:
1.编写一个关闭就结束程序的窗口,其中有两个文本框和一个按钮.如果在第一个文本框中输入文字,然后敲击回车键或者点击按钮,这些文字就会被复制到第二个文本框中,而第一个文本框会清空.
package com.xiaotan.train.test3;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class GUI extends JFrame {
public JTextField one,two,three;//文本框组件
public JButton button;//按钮
GUI(String s){
super(s);
setSize(300,300);
//创建组件实例对象
one=new JTextField(20);
two=new JTextField(20);
button=new JButton("复制");
setLayout(new FlowLayout());
//添加组件
add(one);
add(button);
add(two);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
H d=new H();
one.addActionListener(d);
button.addActionListener(d);
}
class H implements ActionListener{
public void actionPerformed(ActionEvent e) {
String s=one.getText();
two.setText(s);
one.setText(" ");
}
}
public static void main(String[] args) {
GUI win=new GUI("tanke");
}
}
运行结果如下:
1.
2.编写一个关闭就会结束程序的窗口,其中有一个文本框,它能表明鼠标在窗口中是移动(Move)还是拖动(Drag)状态,并跟踪记录此时的坐标.
(一下用的是默认布局,即[BorderLayout],也可用只是部分的布局)
[**值得注意得是:**当使用边界布局时,若只添加了一个组件放至CENTER,则默认会占满整个窗口,因此需要监视p,而非本窗口(此时窗口已被容器p覆盖)]
package com.xiaotan.train.test3;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class GUI_MOUSE extends JFrame{
public JTextField tf;
GUI_MOUSE(String s){
super(s);
tf=new JTextField(20);
//setLayout(new FlowLayout());
Panel p=new Panel();
p.add(tf);
add(p,BorderLayout.CENTER);
H d=new H();
p.addMouseMotionListener(d);
//add(tf);
//addMouseMotionListener(d);
setBounds(100,150,300,350);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
class H implements MouseMotionListener{
public void mouseMoved(MouseEvent e){
int x = e.getX();
int y =e.getY();
tf.setText("Mouse Move at "+x+","+y);
}
public void mouseDragged(MouseEvent e){
int x = e.getX();
int y =e.getY();
tf.setText("Mouse Dragging at "+x+","+y);
}
}
public static void main(String[] args) {
GUI_MOUSE win=new GUI_MOUSE("tanke"+new java.util.Date());
}
}
运行结果如下:
1.Move
扫描二维码关注公众号,回复:
14634147 查看本文章
2.Drag