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

框架

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);      
    }
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Hareric/article/details/49912769
文章标签: java
个人分类: java
想对作者说点什么? 我来说一句

java学习笔记

2011年12月09日 2.59MB 下载

java思维导图大全

2018年01月25日 690KB 下载

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭