学习javaGUI

一、JFrame

1、JFrame是一个顶层容器类(可以添加其他swing组件的类)

创建一个简单的JFrame窗口:

public class TestJFrame extends JFrame{
    JButton jButton = null;
    public static void main(String[] args) {
        TestJFrame testJFrame = new TestJFrame();
    }
    public TestJFrame(){        
        JButton jButton = new JButton("按钮");//创建按钮
        this.setTitle("第一个窗体");//设置标题
        this.setSize(400, 200);//设置窗口大小
        this.add(jButton);//添加按钮
        this.setLocation(300, 200);//设置相对于window界面的位置
        this.setResizable(false);//禁止修改大小
        this.setIconImage((new ImageIcon("images/my.jpg")).getImage());//设置窗体图标
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭窗口保证JVM也退出,避免无谓的内存消耗


        this.setVisible(true);//显示
    }

}

二、三大常用布局管理器介绍

1、流式布局管理器

public class TestFlowLayout extends JFrame{
    JButton jb1,jb2,jb3,jb4,jb5;
    public static void main(String[] args) {
        TestFlowLayout testFlowLayout = new TestFlowLayout();
    }
    public TestFlowLayout(){
        //创建组件
        jb1 = new JButton("关羽");
        jb2 = new JButton("张飞");
        jb3 = new JButton("赵云");
        jb4 = new JButton("黄忠");
        jb5 = new JButton("魏延");
        
        //添加组件
        this.add(jb1);
        this.add(jb2);
        this.add(jb3);
        this.add(jb4);
        this.add(jb5);
        
        
        //设置布局管理器
        this.setLayout(new FlowLayout(FlowLayout.LEFT));
        
        //设置窗体属性
        this.setTitle("边界布局案例");
        this.setSize(300,200);
        this.setLocation(200, 200);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        //显示窗体
        this.setVisible(true);
        
    }

}

2、边界布局管理器

public class TestBorderLayout extends JFrame{
    //定义组件
    JButton jbCenter,jbNorth,jbEast,jbSouth,jbWest;
    public static void main(String[] args) {
        TestBorderLayout testBorderLayout = new TestBorderLayout();
    }
    public TestBorderLayout(){
        //创建组件
        jbCenter = new JButton("中部");
        jbEast = new JButton("东部");
        jbSouth = new JButton("南部");
        jbWest = new JButton("西部");
        jbNorth = new JButton("北部");
        
        //添加各个组件
        this.add(jbCenter,BorderLayout.CENTER);
        this.add(jbNorth,BorderLayout.NORTH);
        this.add(jbEast,BorderLayout.EAST);
        this.add(jbSouth,BorderLayout.SOUTH);
        this.add(jbWest,BorderLayout.WEST);
        
        //设置窗体属性
        this.setTitle("边界布局案例");
        this.setSize(300,200);
        this.setLocation(200, 200);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        //显示窗体
        this.setVisible(true);
        
    }

}

3、网格布局管理器

public class TestGridLayout extends JFrame{
    //定义组件
    int size = 9;
    JButton jbs[] = new JButton[size];
    public static void main(String[] args) {
        TestGridLayout testGridLayout =new TestGridLayout();
    }
    public TestGridLayout(){
        //创建组件并添加组件
        for(int i=0;i<size;i++){
            jbs[i] = new JButton(String.valueOf(i));
            this.add(jbs[i]);
        }
        
        //设置网格布局
        this.setLayout(new GridLayout(3,3,10,10));
        
        //设置窗体属性
        this.setTitle("边界布局案例");
        this.setSize(300,200);
        this.setLocation(200, 200);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        //显示窗体
        this.setVisible(true);
        
    }

}

4、其他还有卡片布局管理器和网格包布局管理器,但是不常用

三、其他一些工具

1、JPanel面板

//JPanel布局默认是FlowLayout,它也是一个容器类组件,可以使用面板作载体容纳其他的组件实现更多用化的布局

JPanel jp = new JPanel();

jp.setBackground(Color.RED);//设置面板背景色

或 :jp.setBackground(new Color(0,0,255));//同样也是设置背景色

2、JCheckBox多选框

JCheckBox jcb1 = new JCheckBox("足球");

3、JRadioButton单选框

//一定要把jrb1和jrb2放入到ButtonGroup中,要不然就实现不了单选的效果

//但要注意,虽然单选框放在ButtonGroup中,但是放到其他容器时仍然使用的是单选框而不是ButtonGroup

ButtonGroup bGroup = new ButtonGroup();

JRadioButton jrb1 = new JRadioButton("男");

JRadioButton jrb2 = new JRadioButton("女");

bGroup.add(jrb1);

bGroup.add(jrb2);

4、JComboBox下拉框

String [] jg = {"北京","上海","广州","玉林"};

JComboBox jcb1 = new JComboBox(jg);

5、JList列表及JScrollPane滚动条

String [] dd = {"桂林","九寨沟","故宫","长城"};

JList jList = new JList(dd);

jList.setVisibleRowCount(3);//设置你希望显示多少个选项

JScrollPane jScrollPane = new JScrollPane(jList);//注意:而后在之后放到其他容器中使用的时候要用的是jScrollPane

6、JSplitPane 拆分窗格及ImageIcont图片

String [] dd = {"桂林","九寨沟","故宫","长城"};

JList jList = new JList(dd);

JLable jl1 = new JLable(new ImageIcon("images/桂林.jpg"));

JSplitPane jsp = new JSplitPane (JSplitPane.HORIZONTAL_SPLIT,jList,jl1);

jsp.setOneTouchExpandable(true);//设置可以展开收起

7、JTextArea多行文本框

JTextArea jta = new JTextArea();

8、JTabbedPane选项卡窗格

JTabbedPane jtp = new JTabbedPane();

9、JLabel标签

JLable jl1 = new JLable("姓名",JLabel.CENTER);//设置文本居中

jl1.setFont(new Font("宋体",Font.PLAIN,16));//设置字体样式

jl1.setForeground(Color.BLUE);//设置字体颜色方法

JLabel jl2 = new JLabel("<html><a href='www.qq.com'>申请密码保护</a></html>");//超链接

jl2.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//鼠标到该标签变成一个小手

10、JButton按钮

JButton jb = new JButton(new ImageIcon("youdao.gif"));//按钮可以使用动态图片

11、JMenuBar菜单条组件(树干)、JMenu菜单组件(树枝)、JMenuItem菜单项组件(树叶)

Jmenu jmenu = new Jmenu("文件(F));

jmenu.setMnemonic("F");//设置助记符,这里填F可以使用alt+F建打开改菜单页

jmenu.addSeparator();//添加分割线

JMenuItem jMenuItem = new JMenuItem("保存");

 jMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_DOWN_MASK));//添加保存快捷方式

注意:全部做好菜单之后一定要记得将菜单条添加到窗体中

this.setJMenuBar(jmb);

12、JToolBar工具条组件

JButton jb = new JButton(new ImageIcon("new.jpg"));

jb.setToolTipText("新建");//设置鼠标停在按钮上时的提示消息

工具条添加到窗体直接使用add就可以了

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值