总结: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);
} }

  

最新文章

  1. RabbitMQ总结概念
  2. linux命令行中单个减号表示标准输入输出流
  3. 用Linq操作数据小记
  4. [刘阳Java]_快速搭建MyBatis环境_第2讲
  5. struts2中的constant配置详解
  6. Storm工程创建
  7. Linq之查询表达式语法详解
  8. 【技术贴】三星Note8 N5100实用教程,关闭相机快门声,增加浏览器退出按钮。
  9. 硬盘安装windows7
  10. HTML布局总结
  11. cocos2d-js-v3.0-rc0 下 pomelo-cocos2d-jsb native web 配置
  12. Asp.Net MVC 进阶篇:路由匹配 实现博客路径 和文章路径
  13. web容器启动顺序
  14. Web项目中手机注册短信验证码实现的全流程及代码
  15. python 三种 安装包的方法
  16. 每天进步一点点-一切皆对象/一次编写,到处运行/bean工厂
  17. 详解ASP.NET Core Docker部署
  18. 向Docx4j生成的word文档添加图片和布局--第一部分
  19. 20135208JAVA第二次试验
  20. ubuntu14.04安装vmware workstation

热门文章

  1. linux与windows 通过SecureCRT进行文件传输方式
  2. gdoi2017爆零记
  3. 手机APP和微信小程序能否取代域名?
  4. QT 事件处理 KeyPressEvent 和 定时器时间 Timer
  5. HDU4819 Mosaic
  6. dajngo之中间件总结
  7. Java中初始变量默认值
  8. pandas读取Excel
  9. (转)理解Keystone的四种Token
  10. Xcode rename failed(修改类名失败)的解决办法