JFrame

JFrame创建及基本用法

package com.fxb.gui;

import java.awt.Button;
import java.awt.FileDialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseWheelEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;

public class Test1 {

    private static StringBuilder builder = new StringBuilder();
    public static void pt(Object a){
        builder.setLength(0);
        builder.append(a);
        System.out.println(builder.toString());
    }

    public static void main(String[] args){
        final Frame frame = new Frame("MyFrame");
        frame.setSize(500, 400);
        frame.setLocation(300, 200);
        frame.setLayout(new FlowLayout());

        Button button1 = new Button("Button1");
        frame.add(button1);

        Button button2 = new Button("Button2");
        frame.add(button2);

        Button button3 = new Button("Button3");
        frame.add(button3);

        TextField field = new TextField(20);
//        field.setSize(100, 10);
        frame.add(field);

        WindowListener listener1 = new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.out.println("Closing!");
                System.exit(0);
            }
            public void windowActivated(WindowEvent e) {
                System.out.println("Actived!");
            }
            public void windowClosed(WindowEvent e) {
                System.out.println("Closed!");
            }
            public void windowOpened(WindowEvent e) {
                System.out.println("Opened!");
            }
        };
        frame.addWindowListener(listener1);

        ActionListener listener2 = new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                System.out.println("Exit!");
                System.exit(0);
            }
        };
        button1.addActionListener(listener2);

        final JPopupMenu popupMenu = new JPopupMenu("Popup");
        popupMenu.add(new JMenuItem("Pop1"));
        popupMenu.add(new JMenuItem("Pop2"));
        popupMenu.add(new JMenuItem("Pop3"));

//        final PopupMenu popupMenu = new PopupMenu("Popup");
//        popupMenu.add(new MenuItem("Pop1"));
//        popupMenu.add(new MenuItem("Pop2"));
//        popupMenu.add(new MenuItem("Pop3"));
//        frame.add(popupMenu);

        MouseListener listener3 = new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {

                if(e.getButton() == MouseEvent.BUTTON3){
                    popupMenu.show(e.getComponent(), e.getX(), e.getY());
                }else{
                    if(e.getClickCount() == 2){
                        pt("Double click");
                    }else if(e.getClickCount() == 1){
                        pt("Single click");
                    }
                }
            }

            public void mouseWheelMoved(MouseWheelEvent e) {
                pt("Wheel move");
            }
            public void mouseDragged(MouseEvent e) {
                pt("Mouse drag");
            }
            public void mouseMoved(MouseEvent e) {
                pt("Mouse move");
            }
        };
        frame.addMouseListener(listener3);

        frame.setVisible(true);

        final FileDialog openDialog = new FileDialog(frame, "Open", FileDialog.LOAD);
        final FileDialog saveDialog = new FileDialog(frame, "Save", FileDialog.SAVE);

        MenuBar menuBar = new MenuBar();

        final Menu menu1 = new Menu("文件");
        final MenuItem[] items = new MenuItem[3];
        ActionListener actionListener = new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if(e.getSource() == items[1]){
                    pt("Open");
                    openDialog.setVisible(true);

                    String strDir = openDialog.getDirectory();
                    String strFile = openDialog.getFile();
                    pt(strDir+strFile);
                }
                else if(e.getSource() == items[2]){
                    pt("Save");
                    saveDialog.setVisible(true);
                }
            }
        };

        String[] strs = new String[]{"新建", "打开", "保存"};
        for(int i=0; i<items.length; ++i){
            items[i] = new MenuItem(strs[i]);
            items[i].addActionListener(actionListener);
            menu1.add(items[i]);
        }

        Menu menu2 = new Menu("编辑");
        menu2.add(new MenuItem("复制"));
        menu2.add(new MenuItem("剪切"));
        menu2.add(new MenuItem("粘贴"));

        menuBar.add(menu1);
        menuBar.add(menu2);
        frame.setMenuBar(menuBar);

//        frame.add(openDialog);
//        frame.add(saveDialog);

    }

}

时间: 2024-11-09 03:08:26

JFrame的相关文章

JFrame容器

JFrame中放置组件时,必须首先取得JFrame的ContentPane对象,可以使用Container类的getContenPane()方法. 获取ContentPane对象的格式: Container contentPane=new JFrame().getContentPane(); 也可以用JFrame的setSize(new Dimension(int width,int height))设置框架的大小. show()和hide()方法显示和隐含框架,也可以使用setVisible(

JFrame小练习1

1.文本域组件 public class TestJTextArea { public static void main(String[] args) { JFrame jf=new JFrame("演示文本域"); JPanel jp=new JPanel(); JTextArea jta=new JTextArea("演示文本域,演示文本域,演示文本域",6,6); jta.setLineWrap(true); jp.add(jta); jf.add(jp);

JFrame面板

1.可见性与透明性 可见性:当面板不可见时,则该面板中包含的组件会无法显示. 透明性:若该面板是可见且透明的,那么只是面板会透明(比如面板的背景色无法看到),面板上的组件仍会显示. 注:可见性通过setVisible(boolean)实现,透明性通过setOpaque(boolean)实现,其中true为可见不透明. 2.面板类型 JFrame有四层面板叠加组成,分别是RootPane根面板.LayeredPane层面板.ContentPane内容面板.GlassPane玻璃面板.RootPan

MyEclipse 10.0破解,及建立Myeclipse中建立JFrame 和Swing插件的使用

一.MyEclipse 注册码生成 免积分下载 http://download.csdn.net/detail/u014112584/7270453 具体使用过程: myeclipse 9.1.10 破解 激活,java编写,适用于装有java环境的各种操作系统,win,linux,maxos 第一步:输入任意用户名 第二步:点击Systemid... 按钮,自动生成本机器的systemid. 第三步: 点菜单Tools->RebuildKey 第四步:点击active按钮.会在显示区域生成 L

[Java第一个游戏]JFrame文本框下贪吃蛇

刚刚接触java的文本框绘图的知识点,然后就可以按照老师的提醒做一些简单的游戏,对JFrame加深一下,下面就贪吃蛇给出一些源代码,其实正真的实现的代码并不多,只是稍微处理一下就可以明白,下面代码均有注释! 第一个类shake类 import java.awt.Color; import java.awt.Graphics; import java.util.Random; public class Snake { public int w;//半径 public int x , y;//球心坐

JFrame常用属性设置模板

最近在学习Swing,在各种demo中都需要构建JFrame,于是我决定把构建JFrame的代码贴上来,以后就直接复制粘贴了. public static void main(String[] args) { //创建窗体并指定标题 JFrame frame = new JFrame("BoxlayoutDemo"); //设置内容面板,根据需要进行修改 frame.setContentPane(new BoxLayoutDemo()); //关闭窗体后退出程序 frame.setDe

JFrame、JDialog close

package common; import javax.swing.JFrame; import javax.swing.SwingUtilities; /*2015-5-26*/ public class SwingConsole { public static void run(final JFrame frame,final int width,final int height){ SwingUtilities.invokeLater(new Runnable() { @Override

java JFrame 设置背景颜色无效的理解

广州疯狂软件教育Java培训,iOS培训分享 在开发Java应用程序时,通常情况下利用JFrame创建窗口.利用JFrame创建的窗口分别包含一个标题.最小化按钮.最大化按钮和关闭按钮 1.在你使用JFrame创建窗体时的情况: 在你直接调用setBackground(Color.red)这个方法后,你的确设置了JFrame的背景颜色,而你看到的却不是直接的JFrame,而是JFrame.getContentPane().而JFrame上的contentPane默认是Color.WHITE的,所

第13章 Swing程序组件 JFrame

JFrame窗体是一个容器,它是Swing程序中各个组件的载体,可以将JFrame看作是承载这些Swing组件的容器. 在开发应用程序时可以通过继承java.swing.JFrame类创建一个窗体,在这个窗体中添加组件,同时为组件设置事件.JFrame在程序中的语法格式如下: JFrame jf=new JFrame(title);  // jf: JFrame类的对象 Container container=jf.getContentPane();  //container: Containe

第二节 Java Swing中的基本容器:JFrame

第二节 基本容器:JFrame 如果要使用Swing创建一个窗口,则直接使用JFrame即可,此类事Component类的子类,常用方法如下: 小试牛刀 创建一个简单的窗口 import java.awt.*; import java.io.*; import javax.swing.*; public class JavaSwingTest { public static void main(String args[]) throws IOException{ test1(); } //创建一