1、按钮(Button)
Button b =new Button("Quit");
当点击按钮后 会产生ActionEvent 事件, 需ActionListener 接口进行监听和处理事件。ActionEvent 的对象调用 getActionCommand() 方法得到按钮的标识名,默认按钮名为
label。用setActionCommand() 可以为按钮设置组件标识符。
setLayout(new GridLayout(3,1));
set(new Checkbox("one",null, true));
set(new Checkbox("two"));
set(new checkbox("three"));
2.复选框 checkbox
3.复选框组 checkboxGroup
4、下拉式菜单
5、Canvs 一个应用程序必须继承Canvas类才能获得有用的功能,比如创建一个自定义的组件。如果想在画布上完成一些图形处理,则Canvas 类中得到print 方法必须被重写。
Canvs 组件 监听各种鼠标,键盘事件。当Canvs 组件中输入字符时,必须先调用requestFocus 方法
6、单行文本输入区taxtfield
7、文本输入区textarea
8、列表list
9、框架frame
Frame 是顶级窗口, 可以显示标题 , 重置大小。当Frame 被关闭 ,将产生Win动物Event事件, Frame 无法监听键盘输入事件。
10、对话框 Dialog
11、菜单 Menu
12、MenuBar 只能被添加到Frame 对象中,作为菜单树的根基。
Frame f = new Frame("MenuBar");
MenuBar mb = new BenuBar();
f.setMenuBar(mb);
f.setSize(150,100);
f.,setVisible(true);
13 Menu
14 、MenuItem 菜单项 , 是菜单树中的叶子节点, 通常被添加到一个Menu中,对于
MenuIitem 对象可以添加 ActionListener ,使其能够完成相应的操作。
下面的例子:完成一个简单文字编辑器, 功能还有待完善
/*
* TestEditor.java
*
* Created on 2020年11月19日, 下午8:08
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package mypkg;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class TestEditor {
private Frame f;
private MenuBar mb;
private Menu mFile ,mEdit , mHelp , mTools;
private MenuItem mOpen , mSave,mExit , mCopy, mPaste, mReplace, mWeb , mPaint, mDefine;
private FileDialog fd;
private String fileName;
private char ch;
private String s ="";
private TextArea ta;
private FileOutputStream fos;
private OutputStreamWriter osw;
private FileInputStream fis;
private InputStreamReader isr;
private BufferedReader br;
private MenuListener menuListener;
public TestEditor(){
f = new Frame("简单的文本编辑器");
mb = new MenuBar();
mFile = new Menu("文件");
mEdit = new Menu("编辑");
mHelp = new Menu("帮助");
mTools = new Menu("工具栏");
mOpen = new MenuItem("打开");
mSave = new MenuItem("保存");
mExit = new MenuItem("退出");
mCopy = new MenuItem("复制");
mPaste = new MenuItem("粘贴");
mReplace = new MenuItem("替换");
mWeb = new MenuItem("Web工机");
mPaint = new MenuItem("绘图");
mDefine = new MenuItem("自定义");
f.setMenuBar(mb);
mb.add(mFile);
mb.add(mEdit);
mb.setHelpMenu(mHelp);
mFile.add(mOpen);
mFile.add(mSave);
mFile.addSeparator();
mFile.add(mExit);
mEdit.add(mCopy);
mEdit.add(mPaste);
mEdit.add(mReplace);
mEdit.addSeparator();
mEdit.add(mTools);
mTools.add(mWeb);
mTools.add(mPaint);
mTools.add(mDefine);
ta = new TextArea("",10,10);
f.add("Center",ta);
ta.setForeground(Color.black);
ta.addKeyListener(new KeyAdapter(){
public void keyTyped(KeyEvent ev){
s+= ev.getKeyChar();
}
});
f.setSize(800,600);
f.setVisible(true);
menuListener = new MenuListener();
mExit.addActionListener(menuListener);
mOpen.addActionListener(menuListener);
mSave.addActionListener(menuListener);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(1);
}
});
}
public static void main(String [] args ){
TestEditor te = new TestEditor();
}
class MenuListener implements ActionListener{
public void actionPerformed(ActionEvent e){
MenuItem i = (MenuItem)e.getSource();
String label = i.getLabel();
if(label.equals("退出")){
System.exit(1);
}else{
saveFile();
}
}
void saveFile(){
fd = new FileDialog(f,"请输入要保存的文件名",FileDialog.SAVE);
fd.setVisible(true);
fileName = fd.getFile();
try{
fos = new FileOutputStream(fileName);
osw = new OutputStreamWriter(fos);
System.out.println(s);
osw.write(s);
osw.flush();
osw.close();
fos.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}