Java(十四)--创建窗口,添加按钮,接受事件
2015-08-25 20:58
465 查看
创建窗口的话需要引入javax.swing.*,使用了里面的JFrame,如下
这样就可以创建一个窗口了。
下面学习标签JLabel的添加
需要在JFrame的基础上使用,同时再引入java.util.concurrent.*,同时要抛出异常
但是实际上我们不能像上面的代码这么写,会造成线程的冲突,所以我们要用到一个新的方法。如下
不再直接在main中操作窗口,而是提交一个Runnable,就插入到事件的队列中。当运行到该Runnable时不会做其他东西。提交Runnable需要SwingUtilities.invokeLater()这个方法。
下面再讲其他几个方法。getSimpleName(),获取对象的类名。
public static void main(String[] args){ JFrame frame=new JFrame("Hello World");//括号中为窗口的名称 //设置窗口关闭的方式 frame.setDefaultCloseOperation(JFrame.EXIT_IN_CLOSE); frame.setSize(300,100);//设置窗口大小 frame.setVisible(true);//使窗口可视化,不加这一句不会出现窗口 }
这样就可以创建一个窗口了。
下面学习标签JLabel的添加
需要在JFrame的基础上使用,同时再引入java.util.concurrent.*,同时要抛出异常
public static void main(String[] args) throws Exception{ JFrame frame=new JFrame("Hello World");//括号中为窗口的名称 //设置窗口关闭的方式 frame.setDefaultCloseOperation(JFrame.EXIT_IN_CLOSE); frame.setSize(300,100);//设置窗口大小 frame.setVisible(true);//使窗口可视化,不加这一句不会出现窗口 JLabel label=new JLabel("A Label"); frame.add(label); TimeUnit.SECONDS.sleep(1);//程序停止一秒 label.setText("This is different");//将label重置为新的字符串 }
但是实际上我们不能像上面的代码这么写,会造成线程的冲突,所以我们要用到一个新的方法。如下
package com.kaihong; import javax.swing.*; import java.util.concurrent.TimeUnit; public class TestSwing{ JLabel label; JFrame frame; SwingConsole sc; public TestSwing(){ frame=new JFrame("hello swing"); sc=new SwingConsole(); sc.run(frame,300,100); label=new JLabel("A Label"); frame.add(label); } static TestSwing ts; public static void main(String[] args) throws Exception { // TODO Auto-generated method stub /* * 使用SwingUtilities.invokeLater(new Runnable(){...})可以将Runnable提交, * 不会造成线程冲突 */ SwingUtilities.invokeLater(new Runnable(){ public void run(){ ts=new TestSwing(); } }); TimeUnit.SECONDS.sleep(1); SwingUtilities.invokeLater(new Runnable(){ public void run(){ ts.label.setText("Hey/This is different"); } }); } }
不再直接在main中操作窗口,而是提交一个Runnable,就插入到事件的队列中。当运行到该Runnable时不会做其他东西。提交Runnable需要SwingUtilities.invokeLater()这个方法。
下面再讲其他几个方法。getSimpleName(),获取对象的类名。
相关文章推荐
- 在jdk为1.6或1.7下,eclipse仍然报Remove '@override' annotation错误
- 大龄屌丝自学笔记--Java零基础到菜鸟--011
- java.net.UnknownHostException: Unable to resolve host "xxx": No address associated with hostname
- java8-25(线程)
- java与js利用隐藏标签传参数
- 气泡,归并,插入,快速,选择排序java实现
- Eclipse提示Found 3 versions of android-support-v4.jar in the dependency list解决方法
- spring & bean
- JAVA基础9(设计模式 单例模式 工厂模式 建造者模式 原型模式)
- java 生产者消费者问题 并发问题的解决
- java框架篇---struts之OGNL详解
- Java Servlet完全教程
- java多线程之三
- 简单原理来介绍java编程之反射
- java综合(二)springmvc与spring整合
- Java并发编程:Lock
- java成员的初始化 --thinking in java学习笔记(三)
- Java(十三)--Set的添加,删除,修改
- HBase总结(十二)Java API 与HBase交互实例
- Java String浅析