【第22期】观点:IT 行业加班,到底有没有价值?

Java学习笔记---图形用户界面基础

原创 2015年11月18日 20:40:16

框架

import javax.swing.JFrame;
public class MyFrame 
{
    public static void main(String[] args)
    {
        JFrame frame = new JFrame("MyFrame"); //创建一个带特定标题的框架,若无参数,则为无标题的默认框架
        frame.setSize(400,300);   //设置框架的长宽
        //System.out.println(frame.size());
        frame.setLocationRelativeTo(null); //设定和特定组件的相关位置,若为null,则表示框架在屏幕中居中
        //frame.setLocation(100,200);  //设定框的座标
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//指定框架关闭时的操作,这里默认程序结束
        frame.setVisible(true); //设置true显示框架
    }
}

布局管理器

FlowLayout

最简单的布局管理器.按照组件添加的顺序,从左到右地将组件排列在容器中.

import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JFrame;
import java.awt.FlowLayout;

public class ShowFlowLayout extends JFrame{
    public ShowFlowLayout()
    {
        setLayout(new FlowLayout(FlowLayout.LEFT,10,20));//设置添加的组件 向左对齐 间距:10 行距:20
    }

    public static void main(String[] args)
    {
        ShowFlowLayout frame = new ShowFlowLayout();
        frame.setTitle("ShowFlowLayout");
        frame.setSize(300,200);    
        frame.setLocationRelativeTo(null); 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //添加组件
        frame.add(new JLabel("First Name"));
        frame.add(new JTextField(8));
        frame.add(new JLabel("MI"));
        frame.add(new JTextField(1));
        frame.add(new JLabel("Last Name"));
        frame.add(new JTextField(8));

        frame.setVisible(true); 
    }
}

GridLayout

首先会对框架进行划分网格,然后按照添加顺序从左到右排列,一行一行地排.

import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JFrame;
import java.awt.GridLayout;
public class ShowGridLayout extends JFrame{
    public ShowGridLayout()
    {
        setLayout(new GridLayout(3,2,5,4));//设置添加的组件 3行2列 水平间距:5 垂直间距:4
        //若设置行列,0表示非固定.若行列都不为0,行数固定,列数随添加的组件进行变化.
    }

    public static void main(String[] args)
    {
        ShowGridLayout frame = new ShowGridLayout();
        frame.setTitle("ShowGridLayout");
        frame.setSize(300,100);    
        frame.setLocationRelativeTo(null); 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //添加组件
        frame.add(new JLabel("First Name"));
        frame.add(new JTextField(8));
        frame.add(new JLabel("MI"));
        frame.add(new JTextField(1));
        frame.add(new JLabel("Last Name"));
        frame.add(new JTextField(8));

        frame.setVisible(true); //设置true显示框架
    }
}

BorderLayout

将容器分为东南西北中 5个区域

import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JFrame;
import java.awt.BorderLayout;
public class ShowBorderLayout extends JFrame{
    public ShowBorderLayout(){
        setLayout(new BorderLayout(5,20));//设置水平间距和垂直间距

        add(new JButton("East"),BorderLayout.EAST);
        add(new JButton("North"),BorderLayout.NORTH);
        add(new JButton("West"),BorderLayout.WEST);
        add(new JButton("South"),BorderLayout.SOUTH);
        add(new JButton("Center"));//若不定义位置,则默认在中间添加,与下面这条语句等同
                                //add(new JButton("Center"),BorderLayout.CENTER);
    }

    public static void main(String[] args)
    {
        ShowBorderLayout frame = new ShowBorderLayout();
        frame.setTitle("ShowBorderLayout");
        frame.setSize(300,200);    
        frame.setLocationRelativeTo(null); 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

面板

javax.swing.JPanel 面板作为子容器

java.awt.Color 设置颜色

java.awt.Font 设置字体

javax.swing.ImageIcon 创建图片对象

import javax.swing.*;
import java.awt.*;
public class TestGUI extends JFrame{
    //javax.swing.ImageIcon 创建一个图片的对象,可用做按钮
    private ImageIcon qitiandasheng = new ImageIcon("sorce/picture/qitiandasheng.jpg");

    TestGUI()
    {
        JPanel p1 = new JPanel();
        p1.setLayout(new GridLayout(4,3));
        //java.awt.Color 类内包含了 默认设置的颜色,也可以自定义类设置rgb定义新的颜色
        Color[] color = {Color.red,Color.blue,Color.black,Color.cyan,Color.darkGray,new Color(255,0,156)};
        for(int i=1;i<=9;i++)
        {
            JButton temp = new JButton(""+i);
            temp.setBackground(color[i%6]);
            temp.setForeground(color[(i+2)%6]);
            p1.add(temp);
        }

        p1.add(new JButton(""+0));
        p1.add(new JButton("Start"));
        p1.add(new JButton("Stop"));

        JPanel p2 = new JPanel(new BorderLayout());
        p2.add(new JTextField("SUNWUKONG"),BorderLayout.NORTH);
        p2.add(p1,BorderLayout.CENTER);

        add(p2,BorderLayout.EAST);
        //java.awt.Font 类创建一种字体 public Font(String 字体名,int 字体风格,int 字体大小)
        //字体:SansSerif  Serif  Monospaced  Dialog  DialogInput
        //字体风格:Font.PLAIN  Font.BLOD  Font.ITALIC  Font.BOLD + Font.ITALIC
        Font font1 = new Font("Dialog",Font.BOLD+Font.ITALIC,15);
        JButton temp = new JButton("QITIANDASHENG");
        temp.setFont(font1);
        temp.setBackground(color[4]);
        temp.setForeground(color[2]);
        add(temp,BorderLayout.WEST);
        add(new JButton(this.qitiandasheng),BorderLayout.CENTER);

    }

    public static void main(String[] args)
    {
        TestGUI frame = new TestGUI();
        frame.setTitle("The front view of a Microwave ovean");
        frame.setSize(800,350);    
        frame.setLocationRelativeTo(null); 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setBackground(Color.red);
        frame.setVisible(true);      
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

《Unix & Linux 大学教程》 - 第十一、十二章 学习笔记

  学习笔记,内容基础,适合初学者。   <span style="l
  • su1216
  • su1216
  • 2012-08-08 18:24
  • 2743

黑马程序员-java学习笔记-图形用户界面

---------------------------补一个以前的笔记  忘了发了 其他对象 System;类中的属性和方法都是静态的 out;标准输出,默认是控制台 in;标准输入,默认是键盘 获取...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

《Unix & Linux 大学教程》 - 第十一、十二章 学习笔记

阅读之前,请务必花30秒查看前言说明(在第一、二章前面部分) <p style="margin-top: 0px; margin-bottom: 0px; font-family:

黑马程序员—20—java基础:有关GUI图形用户界面学习笔记和学习心得体会

------- android培训、java培训、期待与您交流! ---------- 1.  GUI:用图形的方式,来显示计算机操作的界面,这样更方便更直观。 a) CLI就是常见的...

《Unix & Linux 大学教程》 - 第七、八章 学习笔记

学习笔记,内容基础,适合初学者。   <span style="line-height: 18px; font-family:
  • su1216
  • su1216
  • 2012-08-06 17:16
  • 1894
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)