zoukankan      html  css  js  c++  java
  • GUI练习中

    总结:JFrame和Frame是有很大差别的。

    不要混淆。否则方法是不能成功调用的

    特别是背景色;JFrame.对象f在main里无法调用背景色前景色都不想显示

    一下是书上的一段代码,编译错误,但是可以运行。当然这个结果很有点不正常。它的事件都无法实现在f上

    package com.tent;
    import java.awt.Button;
    import java.awt.Color;
    import java.awt.FlowLayout;
    import java.awt.Frame;
    import java.awt.Label;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    
    import javax.swing.JLabel;
    //做一个框架
    import javax.swing.JButton;
    import javax.swing.JFrame;
    public class JavaGUI {
    		//private static final MouseListener Button1Handler = null;
    		//必须要是static
    		//犯了一个很严重的错误,对象的创建和方法的调用都用在main函数里面,这里应该放到类里面。否则都不可能编程静态
    	static Frame f=new Frame();//注意既然其他的组件都不是扩展类。那么框架也不为扩展窗口
    	static 	Label lb1=new Label("JavaGUI演示程序");
    	static	Label lb2=new Label("欢迎学习javaGUI编程");
    	static	Label lb3=new Label("当前发生的按钮事件");
    	static	Button jb1=new Button("会说话的按钮");
    	static	Button jb2=new Button("退出的按钮");
    		///因为我用的组件都是扩展型,所以方法背景,前景都无法调用
    		public static void main(String[] args) {
    	
    			f.add(lb1);
    			f.add(lb2);
    			f.add(lb3);
    			f.add(jb1);
    			f.add(jb2);
    			f.setForeground(Color.red);
    			f.setBackground(Color.orange);
    			f.setSize(200,200);
    		//	f.setLayout(null);///这里布局出错
    			f.setLayout(new FlowLayout());
    			lb3.setBackground(Color.CYAN);//设置标签的背景色
    			jb1.addMouseListener(new Button1Handler());//单击某个按钮即可	触发ActionEvent事件。也可以触发MouseEvent事件
    			jb2.addActionListener(new Button2Handler());
    			f.setLocationRelativeTo(null);
    			f.setVisible(true);
    			f.setLayout(null);
    			
    		}
    }				//不必声明静态的私有属性
    		class Button1Handler implements MouseListener{
    
    			@Override
    			public void mouseClicked(MouseEvent e) {
    				// TODO Auto-generated method stub
    				//按下点击事件
    			JavaGUI.lb3.setText("你已经单击鼠标");
    				
    			}
    
    			@Override
    			public void mousePressed(MouseEvent e) {
    				JavaGUI.lb3.setText("你已经按下鼠标");
    				// TODO Auto-generated method stub
    				
    			}
    
    			@Override
    			public void mouseReleased(MouseEvent e) {
    					//JavaGUI.lb3.setText("");
    			}
    
    			@Override
    			public void mouseEntered(MouseEvent e) {
    				JavaGUI.lb3.setText("你已经按下按钮");
    				// TODO Auto-generated method stub
    				
    			}
    
    			@Override
    			public void mouseExited(MouseEvent e) {
    				// TODO Auto-generated method stub
    				JavaGUI.lb3.setText("你已经离开按钮上方");
    				
    			}
    		
    		}
    			class Button2Handler implements ActionListener{
    
    				@Override
    				public void actionPerformed(ActionEvent e) {
    					// TODO Auto-generated method stub
    					System.exit(0);
    				}
    				
    				
    				
    			}
    

      

  • 相关阅读:
    leetcode 287 寻找重复数
    739 每日温度 && 单调栈算法的思路
    leetcode 34 在排序数组中查找元素的第一个和最后一个位置
    leetcode 239 滑动窗口最大值
    leetcode 114 二叉树展开为链表
    leetcode 79 单词搜索
    leetcode 88 合并两个有序数组
    函数指针 & 指针函数
    leetcode 240 搜索二维矩阵
    谱聚类
  • 原文地址:https://www.cnblogs.com/langlove/p/3434794.html
Copyright © 2011-2022 走看看