📄 awtdemo.java
字号:
package awt;
import java.awt.Button;
import java.awt.Canvas;
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.Choice;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Label;
import java.awt.List;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/**
* Title: AWTdemo类<br>
* Description: AWT演示程序<br>
* Copyright:(c)2007 www.luzhou.net<br>
* Company: 泸州职业技术学院电信系
*/
public class AWTDemo extends Frame {
/*
* 声明部分
*/
MenuBar menubar;
Menu file,open;
MenuItem quit,openImage,openText;
Button yesButton;
Button noButton;
List bookList;
Choice modelChoice;
CheckboxGroup labsGroup;
Checkbox[] labBoxes;
Checkbox married;
TextField nameField;
TextArea outputArea;
MainCanvas m_MainCanvas;
Image image;
int curX,curY;
/*
* 构造方法
*/
public AWTDemo() {
super("AWT组件示例程序");
initialize();
}
private void initialize(){
/*
* 设计用户界面
*/
//创建图像
image=Toolkit.getDefaultToolkit().createImage("awt/pukki.png");
//创建菜单栏
menubar = new MenuBar();
this.setMenuBar(menubar);
// 创建'file'菜单
file = new Menu("文件");
open=new Menu("打开");
quit=new MenuItem("退出");
openText=new MenuItem("打开文本文件");
openImage=new MenuItem("打开图像文件");
file.add(open);
open.add(openImage);
open.add(openText);
file.addSeparator();
file.add(quit);
//将'file'菜单添加到菜单栏menubar
menubar.add(file);
//创建一些按钮
this.add(new Label("单击一个按钮:"));
yesButton = new Button("是");
noButton = new Button("否");
this.add(yesButton);
this.add(noButton);
//创建一个List对象,false表明单选(列表框)
this.add(new Label("选择一本书:"));
bookList = new List(4, true);
bookList.add("编译原理");
bookList.add("操作系统");
bookList.add("Java编程");
bookList.add("计算机英语");
this.add(bookList);
//创建一个choice对象(下拉组合框)
this.add(new Label("选择一种模型:"));
modelChoice = new Choice();
modelChoice.addItem("对象模型");
modelChoice.addItem("动态模型");
modelChoice.addItem("功能模型");
this.add(modelChoice);
//创建一个CheckboxGroup对象(单选按钮组)
this.add(new Label("选择一个实验室:"));
labsGroup = new CheckboxGroup();
labBoxes = new Checkbox[2];
labBoxes[0] = new Checkbox("电信系动漫实验室", labsGroup, true);
labBoxes[1] = new Checkbox("电信系软件实验室", labsGroup, false);
this.add(labBoxes[0]);
this.add(labBoxes[1]);
//创建一个Checkbox对象(复选框)
married=new Checkbox("已婚", false);
this.add(married);
//创建画布
m_MainCanvas=new MainCanvas();
m_MainCanvas.setSize(250,250);
this.add(m_MainCanvas);
//创建一个TextField对象(文本框)
this.add(new Label("输入你的姓名:"));
nameField = new TextField(20);
this.add(nameField);
//创建一个TextArea对象
this.add(new Label("输出区域:"));
outputArea = new TextArea(10, 30);
this.add(outputArea);
//设置窗口属性
this.setLayout(new FlowLayout());
this.setSize((int)Toolkit.getDefaultToolkit().getScreenSize().getWidth(),
(int)Toolkit.getDefaultToolkit().getScreenSize().getHeight());
this.setVisible(true);
/*
* 注册监听器,编写事件代码
*/
//按钮单击事件
yesButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
outputArea.append("你单击了【是】按钮。\n");
}
});
noButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
outputArea.append("你单击了【否】按钮。\n");
}
});
yesButton.addKeyListener(new KeyAdapter(){
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==10){
outputArea.append("你按下了【是】按钮。\n");
}
}
});
//窗口关闭事件
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//画布鼠标事件
m_MainCanvas.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e) {
outputArea.append("mouseClicked\n");
}
public void mouseEntered(MouseEvent e) {
outputArea.append("mouseEntered\n");
}
public void mouseExited(MouseEvent e) {
outputArea.append("mouseExited\n");
}
public void mousePressed(MouseEvent e) {
outputArea.append("mousePressed\n");
}
public void mouseReleased(MouseEvent e) {
outputArea.append("mouseReleased\n");
}
});
//画布鼠标移动事件
m_MainCanvas.addMouseMotionListener(new MouseMotionListener(){
public void mouseDragged(MouseEvent e) {
outputArea.append("鼠标拖动: (" + e.getX() + ", " + e.getY() + ")\n");
}
public void mouseMoved(MouseEvent e) {
curX=e.getX();
curY=e.getY();
outputArea.append("鼠标移动: (" + e.getX() + ", " + e.getY() + ")\n");
m_MainCanvas.repaint();
}
});
//open菜单项单击事件
open.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
outputArea.append("你选择【文件】->【打开】\n");
}
});
//quit菜单项单击事件
quit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
//nameField文本框按键事件
nameField.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==10){
outputArea.append("你好, "+nameField.getText()+"\n");
}
}
});
//bookList列表框双击事件
bookList.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// String sum="";
// for(int i=0;i<bookList.getSelectedItems().length;i++)
// {
// sum=sum+bookList.getSelectedItems()[i];
// }
// outputArea.append("你选择了"+sum+"\n");
StringBuffer sum=new StringBuffer();
for(int i=0;i<bookList.getSelectedItems().length;i++){
sum.append(bookList.getSelectedItems()[i]);
}
outputArea.append("你选择了"+sum.toString()+"\n");
}
});
//choice下拉列表框单击事件
modelChoice.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e) {
outputArea.append("你选择了"+modelChoice.getSelectedItem()+"\n");
}
});
//单选按钮单击事件
labBoxes[0].addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e) {
outputArea.append("你选择了"+labBoxes[0].getLabel()+"\n");
}
});
labBoxes[1].addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e) {
outputArea.append("你选择了"+labBoxes[1].getLabel()+"\n");
}
});
//复选框married单击事件
married.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e) {
if(married.getState()){
outputArea.append("你已婚。"+"\n");
}else{
outputArea.append("你单身。"+"\n");
}
}
});
}
/*
* 主方法
*/
public static void main(String args[]) {
new AWTDemo();
}
//内部类
class MainCanvas extends Canvas {
public void paint(Graphics g) {
g.setColor(Color.YELLOW);
g.fillRect(0, 0, this.getWidth()-1, this.getHeight()-1);
g.setColor(Color.RED);
g.drawString("画布", (this.getWidth() - g.getFontMetrics().stringWidth("Canvas"))/2,10);
g.setFont(new Font("Gorgia", Font.PLAIN, 12));
g.drawLine(10,10, 100,100);
g.fillRect(9,9,3,3);
g.drawString("(10,10)", 13, 10);
g.fillRect(49,49,3,3);
g.drawString("(50,50)", 53, 50);
g.fillRect(99,99,3,3);
g.drawString("(100,100)", 103, 100);
g.drawImage(image,50,50,150,150,this);
if(curX>50 && curX<200 && curY>50 && curY<200){
g.setColor(Color.RED);
g.drawRect(50, 50, 150, 150);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -