黑马程序员_学习笔记第21天——图形化界面
来源:互联网 发布:域名过户给企业怎么弄 编辑:程序博客网 时间:2024/05/22 11:58
1、GUI图形用户界面(Graphical User Interface)
2、java.Awt :Abstract Window ToolKit(抽象窗口工具包),需要调用本地系统方法实现功能,属重量级控件。
3、javax.Swing :在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由java实现,增强了移植性,属轻量级控件。
4、Container:为容器,是一个特殊的组建,该组件中可以通过add方法添加其他组件进来。
Component:组件,构件
1)Container:
-->Window: 窗口
-->Frame:窗体
-->Dialog: 对话框
-->FileDialog 文本对话框
-->Panel:面板
2)Button:按钮
3)Label:标签(封装文字)
4)Checkbox:复选框
5)TextComponent:文本组件
-->TextArea
-->TextField
5、布局管理器:
FlowLayout(流式布局管理器):从左到右的顺序排列,Panel默认的布局管理器
BorderLayout(边界布局管理器):东南西北中,Frame默认的布局管理器(需指明位置,不然会全屏覆盖,新添加的会覆盖先前的)
GridLayout(网格布局管理器):规则的矩阵
CardLayout(卡片布局管理器):选项卡
GridBagLayout(网格包布局管理器):非规则的矩阵
6、创建图形化界面:
1)创建frame窗体
2)对窗体进行基本设置
比如大小,位置,布局
3)定义组件
4)将组件通过窗体的add方法添加到窗体中
5)让窗体显示,通过setVisible(true)
- public class AwtDemo1 {
- public static void main(String[] args) {
- Frame f = new Frame("my awt");
- f.setSize(500,400);
- f.setLocation(300,200);
- f.setLayout(new FlowLayout());
- Button b = new Button("我是一个按钮");
- f.add(b);
- f.addWindowListener(new WindowAdapter(){
- public void windowClosing(WindowEvent e) {
- System.out.println("我关");
- System.exit(0);
- }
- public void windowActivated(WindowEvent e){
- System.out.println("我活了");
- }
- public void windowOpened(WindowEvent e){
- System.out.println("我被打开了。。。。");
- }
- });
- f.setVisible(true);
- }
- }
7、事件监听机制组成:
事件源(组件):就是awt包或者swing包中的那些图形界面组件。
事件(Event):每一个事件源都有自己特有的对应事件和共性事件。
监听器(Listener):将可以出发某一个事件的动作(不止一个动作)都已经封装到了监听器中。
注:以上三者,在java中都已经定义好了,直接获取其对象来用就可以了。
事件处理(引发事件后处理方式):对产生的动作进行处理。(实际开发中所要做的)
- public class FrameDemo1 {
- private Frame f ;
- private Button but;
- FrameDemo1() {
- init();
- }
- public void init() {
- f = new Frame("my frame");
- //对frame进行基本设置
- f.setBounds(300,100,600,500);
- f.setLayout(new FlowLayout());
- but = new Button("my button");
- //将组件添加到frame中
- f.add(but);
- //加载一下窗体上事件
- myEvent();
- //显示窗体
- f.setVisible(true);
- }
- private void myEvent() {
- f.addWindowListener(new WindowAdapter(){
- public void windowClosing(WindowEvent e){
- System.exit(0);
- }
- });
- but.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e){
- System.out.println("退出,按钮干的");
- System.exit(0);
- }
- });
- }
- public static void main(String[] args) {
- new FrameDemo1();
- }
- }
- public class MouseAndKeyEventDemo1 {
- private Frame f ;
- private Button but;
- private TextField tf;
- MouseAndKeyEventDemo1() {
- init();
- }
- public void init() {
- f = new Frame("my frame");
- f.setBounds(300,100,600,500);
- f.setLayout(new FlowLayout());
- tf = new TextField(20);
- f.add(tf);
- but = new Button("my button");
- f.add(but);
- myEvent();
- f.setVisible(true);
- }
- private void myEvent() {
- f.addWindowListener(new WindowAdapter(){
- public void windowClosing(WindowEvent e){
- System.exit(0);
- }
- });
- tf.addKeyListener(new KeyAdapter(){
- public void keyPressed(KeyEvent e) {
- int code = e.getKeyCode();
- if(!(code>=KeyEvent.VK_0&&code<=KeyEvent.VK_9)){
- System.out.println("输入非法字符");
- e.consume();
- }
- }
- });
- //给but添加一个键盘监听
- but.addKeyListener(new KeyAdapter(){
- public void keyPressed(KeyEvent e){
- if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER)
- System.out.println("ctrl+enter is run");
- //System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"...."+e.getKeyCode());
- }
- });
- /*
- but.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e){
- System.out.println("action ok");
- }
- });
- but.addMouseListener(new MouseAdapter(){
- private int count = 1;
- private int clickCount = 1;
- public void mouseEntered(MouseEvent e) {
- System.out.println("鼠标进入到该组件"+count++);
- }
- public void mouseClicked(MouseEvent e ){
- if(e.getClickCount()==2)
- System.out.println("双击动作"+clickCount++);
- }
- });
- */
- }
- public static void main(String[] args) {
- new MouseAndKeyEventDemo1();
- }
- }
8、练习1
- public class MyWindowDemo1 {
- private Frame f;
- private TextField tf;
- private Button but;
- private TextArea ta;
- private Dialog d;
- private Label lab;
- private Button okBut;
- MyWindowDemo1() {
- init();
- }
- public void init() {
- f = new Frame("my window");
- f.setBounds(300,100,600,500);
- f.setLayout(new FlowLayout());
- tf = new TextField(60);
- but = new Button("转到");
- ta = new TextArea(25,70);
- d = new Dialog(f,"提示信息-self",true);
- d.setBounds(400,200,240,150);
- d.setLayout(new FlowLayout());
- lab = new Label();
- okBut = new Button("确定");
- d.add(lab);
- d.add(okBut);
- f.add(tf);
- f.add(but);
- f.add(ta);
- myEvent();
- f.setVisible(true);
- }
- private void myEvent() {
- d.addWindowListener(new WindowAdapter(){
- public void windowClosing(WindowEvent e) {
- d.setVisible(false);
- }
- });
- okBut.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e){
- d.setVisible(false);
- }
- });
- tf.addKeyListener(new KeyAdapter(){
- public void keyPressed(KeyEvent e) {
- if(e.getKeyCode()==KeyEvent.VK_ENTER)
- showDir();
- }
- });
- but.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e){
- showDir();
- //System.out.println(text);
- //tf.setText("");
- }
- });
- f.addWindowListener(new WindowAdapter(){
- public void windowClosing(WindowEvent e) {
- System.exit(0);
- }
- });
- }
- private void showDir() {
- String dirPath = tf.getText();
- File dir = new File(dirPath);
- if(dir.exists()&&dir.isDirectory()) {
- ta.setText("");
- String[] names = dir.list();
- for(String name : names) {
- ta.append(name+"\r\n");
- }
- }
- else{
- String info = "您输入的信息:"+dirPath+"是错误的,请重输";
- lab.setText(info);
- d.setVisible(true);
- }
- }
- public static void main(String[] args) {
- new MyWindowDemo1();
- }
- }
9、练习2
- public class MyMenuTest {
- private Frame f ;
- private MenuBar bar;
- private TextArea ta;
- private Menu fileMenu;
- private MenuItem closeItem,saveItem,openItem;
- private FileDialog openDia,saveDia;
- private File file;
- MyMenuTest() {
- init();
- }
- public void init() {
- f = new Frame("my window");
- f.setBounds(300,100,650,600);
- //f.setLayout(new FlowLayout());
- 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);
- saveDia = new FileDialog(f,"我要保存",FileDialog.SAVE);
- f.add(ta);
- myEvent();
- f.setVisible(true);
- }
- private void myEvent() {
- openItem.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e) {
- 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 {
- BufferedReader 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("读取失败");
- }
- }
- });
- saveItem.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e) {
- if(file==null){
- saveDia.setVisible(true);
- String dirPath = saveDia.getDirectory();
- String fileName = saveDia.getFile();
- if(dirPath==null||fileName==null)
- return;
- file = new File(dirPath,fileName);
- }
- try {
- BufferedWriter bufw = new BufferedWriter(new FileWriter(file));
- String text = ta.getText();
- bufw.write(text);
- //bufw.flush();
- bufw.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();
- }
- }
- 黑马程序员_学习笔记第21天——图形化界面
- 黑马程序员_学习笔记第22天——图形化界面
- 黑马程序员_图形化界面
- 黑马程序员_图形化界面
- 黑马程序员java学习笔记——GUI图形化界面
- 黑马程序员_学习笔记第21天——Object流、管道流、数据流
- 黑马程序员——图形化界面
- 黑马程序员——图形化界面
- 黑马程序员—GUI(图形化界面)
- 黑马程序员_Java第22天知识总结_创建图形化界面_事件监听机制_双击执行的jar包
- 黑马程序员_学习笔记第1天——dos
- 黑马程序员_学习笔记第2天——运算符、语句
- 黑马程序员_学习笔记第3天——for、while、函数
- 黑马程序员_学习笔记第4天——数组
- 黑马程序员_学习笔记第5天——面向对象
- 黑马程序员_学习笔记第13天——String类
- 黑马程序员_学习笔记第11天——多线程1
- 黑马程序员_学习笔记第6天——静态、单例
- maven中运行maven-release-plugin插件异常问题
- 将时间戳 转成 时间
- 深入x86的内存寻址
- Nosql Mongodb之旅(10)—MongoDB Capped Collection
- 漫谈高数,特征向量物理意义
- 黑马程序员_学习笔记第21天——图形化界面
- Codeforces Round #151 (Div. 2)
- gcc,g++编译链接有关的路径
- CheckboxTableViewer控件详解
- java 笔试题
- 输入格式与定义格式不匹配
- 黑马程序员_学习笔记第22天——网络编程TCP/UDP
- Nosql Mongodb之旅(11)—MongoDB GridFS
- Step-by-step guide on File-to-IDoc using SAP PI 7.0