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);      
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

<<Python基础教程>>学习笔记 | 第12章 | 图形用户界面

Python支持的工具包很多,但没有一个被认为标准的工具包,用户选择的自由度大些.本章主要介绍最成熟的跨平台工具包wxPython.官方文档: http://wxpython.org/

python基础教程_学习笔记23:图形用户界面

图形用户界面 丰富的平台 在编写Python GUI程序前,需要决定使用哪个GUI平台。 简单来说,平台是图形组件的一个特定集合,可以通过叫做GUI工具包的给定Python模块进行访问。 ...

Python学习笔记19:Python图形用户界面编程

1、Tcl、Tk和Tkinter Tkinter是Python的默认GUI库,它基于Tk工具集,后者最初是为工具命令语言(Tcl)设计的。Tk流行后被广泛移植,包括Perl(Perl/Tk)、Rub...
  • tiana0
  • tiana0
  • 2016-07-24 19:06
  • 5496

【Unity 3D】学习笔记十:GUI Skin(图形用户界面皮肤)

Unity 学习笔记十   学习资料:《Unity 3D游戏开发》 宣雨松   在这之前的学习的大部分控件用来开发游戏还是太简陋,为了让游戏更具娱乐性和美观,所以我们就需要学习GUI Ski...

黑马程序员-Java语言基础– GUI 图形用户界面 第22天

---------------------- android培训、java培训、期待与您交流! ---------------------- 1、GUI概述       GUI   ...

黑马程序员-java基础(八)-图形用户界面GUI

------- android培训、java培训、期待与您交流! ---------- 图形用户界面GUI GUI (图形用户接口)     |--Awt:需要调用本地系统方法实现功能     |--...

黑马程序员——Java基础知识之DUI(图形用户界面)

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——- (一)什么GUI? 1、图形用户界面,用于计算机与用户交互的一种方式,英文是GraphicalUser In...

黑马程序员 Java基础<十一>---> GUI(图形用户界面)

-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------ 第一节   GUI 概述 一、概述: 1、GUI:Gra...

《黑马程序员》java笔记->GUI(图形用户界面)

------- android培训、java培训、期待与您交流! ---------- GUI(图形用户界面) GUI Graphical User Interface(图形用户接口...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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