Java evelen Swing程序设计基础--JFrame窗体

Java Swing框架创建窗口实例

1、窗体是一个组件容器,所有组件都必须有窗体去承载他们。JFrame是Swing技术的窗体类,可通过 extends java.swing.JFrame类创建一个窗体。

JFrame窗体类包含一个容器类,所有放置在窗体上的组件其实都是放置在这个容器类上。

JFrame jf = new JFrame;
Container container = jf.getContentPane();
package Eleven;

import java.awt.EventQueue;

import javax.swing.JFrame;

import javax.swing.JLabel;

import java.awt.BorderLayout;

public class FrameD extends JFrame{
 public static void main(String[] args){
  //void java.awt.EventQueue.invokeLater(Runnable runnable)
  //This will happen after all pending events are processed.
  /*,java的GUI都是的单线程,应该使用事件调度线程去执行,如果没使用事件调度线程的话,
   * 可能造成死锁。但是在小的程序中,这种现象(死锁)不会发生的;大的应用程序中可能会出现这种现象*/
  /*swing是单线程的,所有与组件绘制有关的操作都必须在单一线程中完成,这个线程就是事件队列线程
   *EventQueue类的invokeLater()方法可以将Swing组件相关的操作的线程加入到事件队列中,
   *这样可以把界面绘制与业务处理线程分开,避免执行业务处理时导致界面出现卡死或假死现象 */
  EventQueue.invokeLater(new Runnable(){
   public void run() {
    // TODO Auto-generated method stub
    try{
     FrameD frame = new FrameD();//创建窗体
     frame.setVisible(true);//设置窗体可见,JFrame的窗体默认不可见
    }catch(Exception e){
     e.printStackTrace();
    }
   }
   
  });
 }
 /*
  * 构造方法,在其中定义了界面的初始化*/
 public FrameD(){
  super();
  //void java.awt.Window.setBounds(int x, int y, int width, int height)
  setBounds(100,100,214,140);//设置窗体大小、位置
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗体默认关闭方式
  final JLabel label = new JLabel();//创建JLabel标签组件
  label.setText("a JFrame Window");//设置标签文本
  getContentPane().add(label,BorderLayout. PAGE_END);//添加标签组件到窗体中
 }
}

 200335_x5yC_2653987.jpg

转载于:https://my.oschina.net/doudoulee/blog/634778

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值