一.文本框控件
一个例子:使用文本框控件,这里用的是单行文本框,输入0-9,如果其他输入则不能输入
import java.awt.*;
import java.awt.event.*;
public class TextFieldDemo {
private Frame frame;
private Button button;
private TextField textfield;
TextFieldDemo()
{
init();
}
private void init()
{
frame = new Frame("TextFiled");
frame.setBounds(200,200,500,400);
frame.setLayout(new FlowLayout());
//初始化可以确定长度
textfield = new TextField(20);
frame.add(textfield);
button = new Button("hello");
frame.add(button);
// 添加鼠标事件监听器
myEvent();
frame.setVisible(true);
}
public void myEvent()
{
frame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
textfield.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
//获取键盘码
int code = e.getKeyCode();
if (!(code >= KeyEvent.VK_0 && code <= KeyEvent.VK_9))
{
System.out.println("please input 0~9");
//使用此方法,不处理事件,即取消掉操作
e.consume();
}
}
});
}
//main
public static void main(String[] args)
{
new TextFieldDemo();
}
}
结果:
要点:
1.文本框控件构造函数可以加上文本框的长度。单行文本框只有一行。
2.KeyEvent e.getCode可以获取按键的值。KeyEvent.中存了各个按键的值,便于记忆。
3.e.consume方法可以取消事件。
二.文本区域控件
import java.awt.*;
import java.awt.event.*;
public class MyWindow {
private Frame f;
private TextField tf;
private TextArea ta;
private Button bt;
MyWindow()
{
init();
}
public void init()
{
f = new Frame("my window");
f.setBounds( 300, 300, 500, 400);
f.setLayout(new FlowLayout());
tf = new TextField(30);
ta = new TextArea(20, 30);
bt = new Button("ok");
f.add(tf);
f.add(bt);
f.add(ta);
myEvent();
f.setVisible(true);
}
private void myEvent()
{
//关闭事件
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
bt.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String text = tf.getText();
ta.append(text+"\n");
tf.setText("");
}
});
}
//main
public static void main(String[] args)
{
new MyWindow();
}
}
结果:
要点:
1.文本区域控件与文本框控件差不多,只不过是多行的。初始化的时候可以在构造函数中输入行数和列数。
2.getText,setText,append方法,获取文本,设置文本,追加文本。
三.对话框
对话框也相当于一个窗口,但是一般用于提示一些信息。一个例子:
import java.awt.*;
import java.awt.event.*;
public class DialogDemo {
private Frame fm;
private Button bt;
private Dialog d;
private Label lab;
private Button ok_btn;
DialogDemo()
{
init();
}
private void init()
{
fm = new Frame("dialog");
fm.setBounds(300, 300, 500, 300);
fm.setLayout(new FlowLayout());
bt = new Button("dialog");
fm.add(bt);
d = new Dialog(fm, "提示信息", true);//设置为true,模态对话框(不关了无法操作),设置为false,则为非模态对话框(不关了也能继续操作)
d.setBounds(300, 300, 100, 100);
lab = new Label();
ok_btn = new Button("ok");
d.add(lab);
d.add(ok_btn);
d.setLayout(new FlowLayout());
myEvent();
fm.setVisible(true);
}
private void myEvent()
{
fm.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
bt.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String info = "Dialog";
lab.setText(info);
d.setVisible(true);
}
});
d.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
d.setVisible(false);
}
});
}
public static void main(String[] args)
{
new DialogDemo();
}
}
结果:
要点:
1.d = new Dialog(fm, "提示信息", true);//设置为true,模态对话框(不关了无法操作),设置为false,则为非模态对话框(不关了也能继续操作)
2.对于对话框,也需要对其进行和窗口一样的设定,设置各种参数,以及添加控件的监听器。
1.d = new Dialog(fm, "提示信息", true);//设置为true,模态对话框(不关了无法操作),设置为false,则为非模态对话框(不关了也能继续操作)
2.对于对话框,也需要对其进行和窗口一样的设定,设置各种参数,以及添加控件的监听器。
3.菜单显示与否通过setVisible方法,如果关掉对话框就设置为false,显示设置为true。
四.菜单
菜单也是我们常用的东东,给个例子:
import java.awt.*;
import java.awt.event.*;
public class MenuDemo {
private Frame f;
private MenuBar mb;
private Menu m,subMenu;
private MenuItem closeItem, subItem;
MenuDemo()
{
init();
}
private void init()
{
f = new Frame("dialog");
f.setBounds(300, 300, 500, 300);
f.setLayout(new FlowLayout());
//菜单栏
mb = new MenuBar();
//菜单
m = new Menu("Menu");
subMenu = new Menu("subMenu");
//菜单项
subItem = new MenuItem("subItem");
closeItem = new MenuItem("quit");
//将菜单项加入菜单
subMenu.add(subItem);
//将子菜单和菜单项加入菜单
m.add(subMenu);
m.add(closeItem);
//将菜单加入菜单栏
mb.add(m);
//将菜单栏加入窗口
f.setMenuBar(mb);
myEvent();
f.setVisible(true);
}
private void myEvent()
{
closeItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
}
public static void main(String[] args)
{
new MenuDemo();
}
}<strong>
</strong>
结果:
要点:
1.菜单相关的类有几种,MenuBar,Menu,MenuItem,分别表示菜单栏,菜单,菜单项。
2.菜单栏中可以包括菜单。菜单项为最终选项。菜单中可以包括子菜单和菜单项。
3.通过f.setMenuBar()方法将菜单栏加入窗口。
4.菜单的响应函数方法与其他控件的方法相同。