Lesson_for_java_day25--java中GUI实例(键盘鼠标事件、菜单栏、自定义弹窗、调用弹窗)

来源:互联网 发布:淘宝防举报教程 编辑:程序博客网 时间:2024/06/05 11:54

一、键盘鼠标事件:

package gui;import java.awt.Button;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class MouseAndKeyEvent {private Frame frame;private Button button;private TextField textField;public MouseAndKeyEvent() {init();}public void init(){//初始化界面frame = new Frame("my Frame");frame.setBounds(300,100,600,500);frame.setLayout(new FlowLayout());button = new Button("my Button");textField = new TextField(20);frame.add(textField);frame.add(button);myEvent();frame.setVisible(true);}public void myEvent(){//监听事件frame.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e){System.exit(0);}});button.addMouseListener(new MouseAdapter() {public void mouseEntered(MouseEvent e){System.out.println("鼠标进入该组件");}public void mouseClicked(MouseEvent e){if(e.getClickCount() == 2)System.out.println("鼠标双击");}});button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {System.out.println("按钮action");}});button.addKeyListener(new KeyAdapter() {public void keyPressed(KeyEvent e){if(e.getKeyCode() == KeyEvent.VK_ESCAPE)System.exit(0);System.out.println(e.getKeyChar() + "-------" + e.getKeyCode());if(e.isControlDown() && e.getKeyCode() == KeyEvent.VK_ENTER)System.out.println("ctrl + enter is run");}});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(code + "------是非法的");e.consume();//如果条件不符合,事件不会按照默认方法处理(取消事件)}}});}public static void main(String[] args) {new MouseAndKeyEvent();}}

二、菜单栏:

package exercise;import java.awt.FileDialog;import java.awt.Frame;import java.awt.Menu;import java.awt.MenuBar;import java.awt.MenuItem;import java.awt.TextArea;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class MyMenuDemo {private Frame frame;private MenuBar mBar;private Menu fileMenu,submMenu;private MenuItem closeItem,subItem,openItem,saveItem;private FileDialog openDialog,saveDialog;private TextArea textArea;private File file;public MyMenuDemo() {init();}public void init() {frame = new Frame("my window");frame.setBounds(300,100,650,500);//frame.setLayout(new FlowLayout());mBar = new MenuBar();textArea = new TextArea();fileMenu = new Menu("文件");openItem = new MenuItem("打开");saveItem = new MenuItem("保存");submMenu = new Menu("子菜单");//Menu有子条目subItem = new MenuItem("子条目");//MenuItem没有子条目closeItem = new MenuItem("退出");submMenu.add(subItem);fileMenu.add(openItem);fileMenu.add(saveItem);fileMenu.add(submMenu);fileMenu.add(closeItem);mBar.add(fileMenu);frame.setMenuBar(mBar);openDialog = new FileDialog(frame,"我要打开",FileDialog.LOAD);saveDialog = new FileDialog(frame,"我要保存",FileDialog.SAVE);frame.add(textArea);myEvent();frame.setVisible(true);}private void myEvent() {frame.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e){System.exit(0);}});closeItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {System.exit(0);}});openItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {openDialog.setVisible(true);String dirPath = openDialog.getDirectory();String fileName = openDialog.getFile();if(dirPath == null || fileName == null)return;textArea.setText("");File file = new File(dirPath,fileName);BufferedReader buf = null;try {buf = new BufferedReader(new FileReader(file));String line = null;while ((line = buf.readLine()) != null) {textArea.append(line + "\r\n");}} catch (IOException e2) {throw new RuntimeException("读取失败");}finally{try {buf.close();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}}});saveItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if(file == null){saveDialog.setVisible(true);String dirPath = saveDialog.getDirectory();String fileName = saveDialog.getFile();if(dirPath == null || fileName == null)return;file = new File(dirPath,fileName);}BufferedWriter bufw = null;try {bufw = new BufferedWriter(new FileWriter(file));String text = textArea.getText();bufw.write(text);bufw.flush();} catch (Exception e2) {throw new RuntimeException();}finally{try {bufw.close();} catch (IOException e1) {e1.printStackTrace();}}}});}public static void main(String[] args) {new MyMenuDemo();}}

三、自定义弹窗

package exercise;import java.awt.Button;import java.awt.Dialog;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.Label;import java.awt.TextArea;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.File;public class MyWindowDemo {private Frame frame;private TextField tField;private Button button;private TextArea tArea;private Button b;private Dialog d;public MyWindowDemo() {inti();}public void inti(){frame = new Frame("my window");frame.setBounds(300,100,600,500);frame.setLayout(new FlowLayout());tField = new TextField(60);button = new Button("转到");b = new Button("确定");tArea = new TextArea(25,70);frame.add(tField);frame.add(button);frame.add(tArea);myEvent();frame.setVisible(true);}private void myEvent(){frame.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e){System.exit(0);}});//d.addWindowListener(new WindowAdapter() {//public void windowClosing(WindowEvent e){//d.setVisible(false);//}//});button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {showdir();}});tField.addKeyListener(new KeyAdapter() {//回车出发事件public void keyPressed(KeyEvent e){if(e.getKeyCode() == KeyEvent.VK_ENTER){showdir();}}});b.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {d.setVisible(false);}});}private void showdir(){String dirPath = tField.getText();//获取文本信息File dir = new File(dirPath);if(dir.exists() && dir.isDirectory()){String[] names = dir.list();for(String name : names){tArea.append(name + "\r\n");}tField.setText(null);}else {d = new Dialog(frame, "提示信息--self",true);//自定义弹窗信息d.setBounds(400,200,240,100);d.setLayout(new FlowLayout());Label label = new Label();d.add(label);d.add(b);label.setText("你输入的信息:"+ dirPath +"有误,请重新输入");d.setVisible(true);}}public static void main(String[] args) {new MyWindowDemo();}}

四、模拟登入界面,触发弹窗信息

package sonyi.exercise;import java.awt.Checkbox;import java.awt.FlowLayout;import java.awt.Label;import java.awt.TextArea;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.SwingConstants;public class LoginExercise {public static void main(String[] args) {new FrameDemo();}}class FrameDemo {JFrame frame;JButton jButton1,jButton2;public FrameDemo() {frame = new JFrame("登入界面");frame.setLayout(new FlowLayout());frame.setBounds(300, 200, 250, 300);JPanel jP1 = new JPanel();Label label1 = new Label("用户名:");TextField tField1 = new TextField(20);jP1.add(label1);jP1.add(tField1);JPanel jP2 = new JPanel();Label label2 = new Label("密   码:");JPasswordField jPasswordField = new JPasswordField(14);jP2.add(label2);jP2.add(jPasswordField);JPanel jP3 = new JPanel();JLabel label3 = new JLabel("备   注:");label3.setVerticalAlignment(SwingConstants.TOP);TextArea tArea = new TextArea(4,20);jP3.add(label3);jP3.add(tArea);JPanel jP4 = new JPanel();Checkbox checkbox = new Checkbox("已经阅读条款,并同意条款内容");jP4.add(checkbox);JPanel jP5 = new JPanel();jButton1 = new JButton("确定");jButton2 = new JButton("取消");jP5.add(jButton1);jP5.add(jButton2);frame.add(jP1);frame.add(jP2);frame.add(jP3);frame.add(jP4);frame.add(jP5);myEvent();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}public void myEvent() {jButton1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {JOptionPane.showMessageDialog(frame, "测试弹窗,没有链接信息");//弹窗信息}});}}

0 0
原创粉丝点击