黑马程序员Java基础__GUI
来源:互联网 发布:会计中级网络培训推荐 编辑:程序博客网 时间:2024/06/06 19:27
|--Container:可包含其他 AWT 组件的组件。
|--Window:窗口。
|--Frame:框架。
|--Dialog:对话框。
|--FileDialog:文件对话框。
|--Panel:面板。
|--Button:按钮。
|--Label:标签,作用是封装文字。
|--Checkbox:复选框。
|--TextComponent:文本组件。
|--TextArea:文本框。
|--TextField:文本区域。
五)常用方法
一)Button
1)void | setBounds(int x, int y, int width, int height) :
移动组件并调整其大小。2)Button(String label) :构造一个带指定标签的按钮。
二)Container
1)Component | add(Component comp):将指定组件追加到此容器的尾部。
2)void | setLayout(LayoutManager mgr):设置此容器的布局管理器。
三)Window
1) void | setSize(int width, int height):调整组件的大小,使其宽度为 width,高度为 height。
2)void | setVisible(boolean b):根据参数 b 的值显示或隐藏此 Window。
四) Frame
1) Frame(String title):构造一个新的、最初不可见的、具有指定标题的 Frame 对象。
2)Panel:默认的布局管理器。
3)BorderLayout(边界布局管理器):东、南、西、北、中。
4)Frame默认的布局管理器。
5)GridLayout(网格布局管理器):规则的矩阵。
6)CardLayout(卡片布局管理器):选项卡。
import java.awt.*;import java.awt.event.*;class MouseAndKeyEvent{//创建全局变量private Frame f = null;private Button but = null;private TextField tf;//初始化窗体MouseAndKeyEvent(){init();}//创建窗体public void init(){f = new Frame("my frame");f.setBounds(300,200,600,500);f.setLayout(new FlowLayout());tf = new TextField(20);but = new Button("button");f.add(tf);f.add(but);myEvent();f.setVisible(true);}//注册事件private void myEvent(){//添加监听器,引发退出事件f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});//给but添加一个活动监听器but.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.out.println("action ok");}});//给文本框添加一个监听器,引发键盘事件tf.addKeyListener(new KeyAdapter(){public void keyPressed(KeyEvent e){int code = e.getKeyCode();System.out.println(e.getKeyChar() + "..." + e.getKeyChar());if(!(code>=KeyEvent.VK_0&&code<=KeyEvent.VK_9)){e.consume();System.out.println(code + "是非法的");}});//鼠标事件//myMouseEvent();//键盘事件myKeyEvent();}//鼠标事件public void myMouseEvent(){//给but添加一个鼠标监听器but.addMouseListener(new MouseAdapter(){private int count = 1;private int clickCount = 1;private int clickCount2 = 1;public void mouseEntered(MouseEvent e){System.out.println("鼠标进入该组件" + count++);}public void mouseClicked(MouseEvent e){if(e.getClickCount()==2)System.out.println("双击动作" + clickCount2++);//System.out.println("点击动作" + clickCount++);}});}//键盘事件public void myKeyEvent(){//给but添加一个键盘监听器but.addKeyListener(new KeyAdapter(){public void keyPressed(KeyEvent e){//组合键ctrl键和回车键同时触发if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER)System.out.println("ctrl+enter is runing");//System.out.println(e.getKeyChar() + "..." + e.getKeyCode());//System.out.println(KeyEvent.getKeyText(e.getKeyCode()) + "..." + e.getKeyChar());}});}public static void main(String[] args) {new MouseAndKeyEvent();}
一、菜单(Menu)
1、Menu:菜单,Menu extends MenuItem;有右三角的图标存在,可添加Menu和MenuItem。
2、MenuBar:菜单栏,可添加菜单和条目。
3、MenuItem:条目,及菜单项目,无右三角的图标存在,是最终的菜单项。
一) Menu (java.awt )
1)构造方法:Menu(String label) :构造具有指定标签的新菜单。
2)常用方法:MenuItem add(MenuItem mi) :将指定的菜单项添加到此菜单。
二)MenuBar(java.awt )
1)概述:是封装绑定到框架的菜单栏的平台概念。为了将该菜单栏与 Frame 对象关联,可以调用该框架的 setMenuBar 方法。
2)构造方法:MenuBar():创建新的菜单栏。
3)常用 方法: Menu add(Menu m):将指定的菜单添加到菜单栏。
三)MenuItem (java.awt )
1) 构造方法: MenuItem(String label) :构造具有指定的标签且没有键盘快捷方式的新菜单项。
2)方法: void | addActionListener(ActionListener l) :添加指定的动作侦听器,以从此菜单项接收动作事件。
十、FileDialog 类
一)概述:
显示一个对话框窗口,用户可以从中选择文件。
由于它是一个模式对话框,当应用程序调用其 show 方法来显示对话框时,它将阻塞其余应用程序,直到用户选择一个文件。
二)构造方法:
1) FileDialog(Frame parent, String title, int mode) : 创建一个具有指定标题的文件对话框窗口,用于加载或保存文件。
2) static int LOAD :此常量值指示文件对话框窗口的作用是查找要读取的文件。
3) static int SAVE :此常量值指示文件对话框窗口的作用是查找要写入的文件。
三) 常用方法:
1) String | getDirectory() 获取此文件对话框的目录。
2) String | getFile() 获取此文件对话框的选定文件。
十一、jar包
一)生成步骤:
1、首先要在java文件中导入一个包,没有则需创建一个包,如package mymenu;
2、生成包:通过编译javac -d c:\myclass MyMenu.java,此时则在c盘下的myclass文件夹下生成了所有的.class文件。
3、在此目录下新建一个文件,如1.txt或者其他任意名称任意扩展名的文件都可,然后在其中编辑固定的格式:“Main-Class: mymenu.MenuDemo”,只写引号中的内容。需要需要在冒号后有一个空格,在文件末尾要回车。
4、编译:jar -cvfm my.jar 1.txt mymenu即可。如果想添加其他信息,则直接编译jar即可得出相应的命令。
5、此时双击即可执行。
import java.awt.*;//导入包 import java.awt.event.*; import java.io.*; public class MyMenuTest { //建立设为私有 private Frame f;//窗体 private MenuBar bar;//菜单栏 private TextArea ta;//文本区域 private Menu fileMenu;//菜单 private MenuItem openItem,saveItem,closeItem;//字条目 private FileDialog openDia,saveDia;//文件打开和关闭 private File file; MyMenuTest()//构造函数.初始化就执行init函数 { init(); } public void init() { f = new Frame("my window");//建立窗体 f.setBounds(300,100,650,600);////设置窗体的坐标,和距离左上屏幕的坐标 bar = new MenuBar();//建立菜单栏 ta = new TextArea();//建立文本区域 fileMenu = new Menu("文件");//建立菜单 openItem = new MenuItem("打开");//子条目 saveItem = new MenuItem("保存"); closeItem = new MenuItem("退出"); fileMenu.add(openItem);//将条目添加到菜单中 fileMenu.add(saveItem); fileMenu.add(closeItem); bar.add(fileMenu);//将菜单添加到菜单栏文件中 f.setMenuBar(bar);//将菜单栏和窗体相关联 openDia = new FileDialog(f,"我要打开",FileDialog.LOAD);//创建打开,LOAD代表打开 saveDia = new FileDialog(f,"我要保存",FileDialog.SAVE);//SAVE代码保存 f.add(ta);//将文本区域添加到窗体中 myEvent(); f.setVisible(true); } private void myEvent() { //事件源是子条目保存,事件是发生操作,处理是保存. saveItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { BufferedWriter bufw =null; if(file==null) { //判断file是否为空,如果是空的话提示对话框保存并, saveDia.setVisible(true); //获取目录和文件 String dirPath = saveDia.getDirectory(); String fileName = saveDia.getFile(); //点击对话框取消的时候,会发生异常,进行判断 //目录或者文件是空的话就返回 if(dirPath==null || fileName==null) return ; //创建文件.获取文件目录和文件的抽象信息 file = new File(dirPath,fileName); } try { //建立字输出符流容器. bufw= new BufferedWriter(new FileWriter(file)); String text = ta.getText();//调用TextArea父类的getText()方法,获取文本组件表示的文本 bufw.write(text);//输出. } catch (IOException ex) { throw new RuntimeException("保存错误啦"); } finally { try { if(bufw!=null) bufw.close();//关闭流 } catch (IOException ex) { throw new RuntimeException("字符输出流关闭失败"); } } } }); //事件源是openItem打开.事件是发生操作时.处理时保存 openItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { BufferedReader bufr =null; //提示对话框打开,获取路径和文件 openDia.setVisible(true); String dirPath = openDia.getDirectory(); String fileName = openDia.getFile(); //[判断是路径和文件否为空 if(dirPath==null || fileName==null) return ; //清空文本区域 ta.setText(""); //创建文件.获取文件目录和文件的抽象信息 file = new File(dirPath,fileName); try { //建立字输出符流容器. bufr = new BufferedReader(new FileReader(file)); String line = null; //输出 while((line=bufr.readLine())!=null) { ta.append(line+"\r\n"); } bufr.close(); } catch (IOException ex) { throw new RuntimeException("读取失败"); } finally { try { if(bufr!=null) bufr.close();//关闭流 } catch (IOException ex) { throw new RuntimeException("字符输出流关闭失败"); } } } }); //事件源是子条目退出,事件是关闭动作,处理时程序关闭. closeItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); //事件源是窗体,事件是关闭动作,处理时程序关闭. f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } public static void main(String[] args) { new MyMenuTest(); } }
- 黑马程序员Java基础__GUI
- 黑马程序员__java基础__GUI
- 黑马程序员__JAVA基础__GUI(图形用户界面)
- 黑马程序员__GUI图行化界面
- 黑马程序员------java基础
- 黑马程序员-Java基础
- 黑马程序员----JAVA基础
- 黑马程序员--Java基础
- 黑马程序员-Java基础
- 黑马程序员-------Java基础
- 黑马程序员--java基础
- 黑马程序员-java-基础
- 黑马程序员--java基础
- 黑马程序员-Java基础
- 黑马程序员-java基础
- 黑马程序员-java基础
- 黑马程序员--java基础
- 黑马程序员-Java基础
- 模式匹配算法-KMP算法
- EABI ABI 嵌入式应用二进制接口
- myeclipse安装 配置Maven
- Android 异常 java.lang.RuntimeException: Can't create handler inside thread that has not called Looper
- UVa 103 Stacking Boxes (DP&DAG)
- 黑马程序员Java基础__GUI
- Excel数据,dataGridview, openFileDialog
- 10款免费且开源的项目管理工具
- Oracle 等待事件类型wait_class说明
- 终于开了一个CSDN博客
- 使用Timer、AlarmManager实现定时服务+Notification进行模拟推送的实现
- 如果说有些难题注定要解决的要淡定面对现实
- DOS自动备份mysql数据库小脚本一枚
- 一个月了 真快啊