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);
} }
GUI练习中的更多相关文章
- GUI RedHat7中常用的一些设置
GUI RedHat7中常用的一些设置... ------------------ RedHat7更改桌面背景 ================= 更改RedHat7的分辨率 ============ ...
- Matlab GUI设计中的一些常用函数
Matlab GUI常用函数总结 % — 文件的打开.读取和关闭% — 文件的保存% — 创建一个进度条% — 在名为display的axes显示图像,然后关闭% — 把数字转化为时间格式% — ch ...
- Java GUI编程中AWT/swing/SWT的优缺点
http://www.cnblogs.com/dugang/archive/2010/10/22/1858478.html AWT AWT是Abstract Window Toolkit(抽象窗口工具 ...
- [GUI] Linux中的图形管理
转:http://www.cnblogs.com/yongpenghan/p/4555619.html 做了一段时间linux下与QT事件相关的工作,经常会遇到X11,总是苦于无法完全理解其与linu ...
- JAVA GUI设计中遇到的一个小问题
最近新学,大牛勿喷.. 写下笔记主要是记录自己常犯的错误,也方便新人解决问题学习参考. 问题:win7下设计GUI,文本框和密码框显示不出来. 我的解决方案: 1. JTextField text = ...
- Java的GUI设计中如何跨界面传值
在Java设计中我们会遇到登录界面的信息,在后面的某个情况也需要使用. 比如这是笔者的一个登录界面 可以看到获取密码和账号 在这个时候的功能的完成需要密码和账号 // 登录信息的获取 public S ...
- 在GUI程序中使用控制台的两种方法
win32程序启用控制台(控制台文件名:conout$,conin$,conerr$) //添加控制台,加入在程序构造函数中 AllocConsole(); freopen("conin$& ...
- 软件GUI测试中的关注点
[摘要] 本文列数了软件黑盒测试过程中,在被测试软件中可能存在的常见软件问题.本文不会详细讨论基本的软件测试思想与常用技术,仅针对在软件黑盒测试过程中若干的问题做描述,并提供个人的参考测试意见与防范意 ...
- QT 开发ros gui过程中遇到:error: catkin_package() include dir 'include' does not exist relative to '/home/jun/catkin_ws/src/qt_ros_test' /opt/ros/kinetic/share/catkin/cmake/catkin_package.cmake:102 (_catkin_p
这是因为在ros工作空间的包中没有include文件夹造成的,所以在该路径下创建include的文件夹,问题就解决了.
- GUI学习中错误Exception in thread "main" java.lang.NullPointerException
运行时出现错误:Exception in thread "main" java.lang.NullPointerException 该问题多半是由于用到的某个对象只进行了声明,而没 ...
随机推荐
- 《机器学习实战第7章:利用AdaBoost元算法提高分类性能》
import numpy as np import matplotlib.pyplot as plt def loadSimpData(): dataMat = np.matrix([[1., 2.1 ...
- Ubuntu下用crontab 部署定时任务
用php做了一个网站,其中一个统计工能,需要每周定时用行.想看看有什么方法,之前看别人的东西,一般有2中方式,一个是php自带的定时任务,一个是用系统 带的,linux下的crontab和window ...
- 让外界可以访问电脑上的网站的几种方式——花生壳,域名,IIS(待)
前话: 每次“养大“一个网站,都有种骄傲地想秀给朋友们看的冲动. 之前可能是困于电脑,实在不方便. 现在,不用克制了! 该秀就秀,能装逼就装逼. 养大孩子就该拉出来秀秀,见见世面. 正题:这次实习,我 ...
- QT 事件处理 KeyPressEvent 和 定时器时间 Timer
1. 按键事件响应, 两种方法,一种直接处理Event,过滤出KeyPress,另一种直接处理KeyPressEvent. bool Dialog::event(QEvent *e) { if( e- ...
- hdu 4737 A Bit Fun 尺取法
A Bit Fun Time Limit: 5000/2500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Proble ...
- cern-cloud-architecture
规模: 总体: 有26个Cell 一个数据中心运行控制节点,另外一个仅仅运行nova cell 统一,灵活 nova-api运行在VM中,当然需要至少一个部署在物理机上来启动VM. 每个cell只有一 ...
- Android dependency has different version.You should manually set the same version via DependencyReso
有时候导入一些module时,会出现以下问题 Android dependency 'com.android.support:support-v4' has different version for ...
- Secret Code
Secret Code 一.题目 [NOIP模拟赛A10]Secret Code 时间限制: 1 Sec 内存限制: 128 MB 提交: 10 解决: 6 [提交][状态][讨论版] 题目描述 ...
- rehash过程
步骤 1) 首先创建一个比现有哈希表更大的新哈希表(expand)2) 然后将旧哈希表的所有元素都迁移到新哈希表去(rehash) dictAdd 对字典添加元素的时候, _dictExpandI ...
- asp.net 锚点
可以使用锚点,但这里可使用灵活处理 首先获取需要滚动到的位置的id,如,可以设置一个元素(,注:要在form里),另外在form的任意位置设置 代码如下: 注:a标签里不要有内容,在回传的地方调用 代 ...