Java程序图形用户界面设计之按钮与布局

目录
  • 按钮组件 JButton
    • JButton类常用方法
    • 按钮上显示图片
  • 布局管理器
    • FlowLayout
    • BorderLayout
    • GridLayout
    • CardLayout
    • 绝对定位

Java程序设计 图形用户界面【四】

按钮组件 JButton

JButton组件表示一个普通的按钮

JButton类常用方法

方法 作用
public JButton() throws HeadlessException 创建一个Button对象
public JButton(String label) throws HeadlessException 创建一个Button对象,同时指定其显示内容
public JButton(Icon icon) 创建一个带图片的按钮
public JButton(String text,Icon icon) 创建一个带图片和文字的按钮
public void setLabel(String label) 设置Button的显示内容
public String getLabel() 得到Button的显示内容
public void setBounds(int x,int y,int width,int height) 设置组件的大小及显示方式
public void setMnemonic(int mnemonic) 设置按钮的快捷键

演示

import javax.swing.*;
import java.awt.*;

public class Hello {
    public static void main(String[] args) {
        JFrame frame = new JFrame("一");
        JButton but = new JButton("点击");
        Font font = new Font("Serief",Font.BOLD,25);
        but.setFont(font);
        frame.add(but);
        frame.setSize(200,70);
        frame.setLocation(500,300);
        frame.setVisible(true);
    }
}

按钮上显示图片

import javax.swing.*;

public class Hello {
    public static void main(String[] args) {
        JFrame frame = new JFrame("一");
        String Path="C:\\Users\\30452\\Desktop\\123.jpg";
        Icon icon = new ImageIcon(Path,"MLDN");
        JButton but = new JButton(icon);
        frame.add(but);
        frame.setSize(500,600);
        frame.setLocation(300,200);
        frame.setVisible(true);
    }
}

布局管理器

在Swing中主要使用以下5种常见的布局管理器:FlowLayout、BorderLayout、GridLayout、CardLayout、绝对定位。

FlowLayout

流式布局管理器,使用此种布局方式会使所有的组件像流水一样依次进行排列

常量 作用
public static final int CENTER 居中对齐
public static final int LEADING 与容器的开始端对齐方式一样
public static final int LEFT 左对齐
public static final int RIGHT 右对齐
public static final int TRAILING 与容器的结束端对齐方式一样
方法 作用
public FlowLayout() 构造一个新的FlowLayout,居中对齐
public FlowLayout(int align) 构造一个FlowLayout,并指定对齐方式
public FlowLayout(int align,int hgap,int vgap) 指定对齐方式、水平、垂直间距

演示:

import javax.swing.*;
import java.awt.*;

public class Hello {
    public static void main(String[] args) {
        JFrame frame = new JFrame("一");
        frame.setLayout(new FlowLayout(FlowLayout.CENTER,4,4));
        JButton but = null;
        for(int i=0;i<16;i++){
            but = new JButton("按钮");
            frame.add(but);
        }
        frame.setSize(300,300);
        frame.setVisible(true);
    }
}

BorderLayout

BorderLayout将一个窗体的版面划分成东、西、南、北、中5个区域

常量 作用
public static final String EAST 将组件设置在东区
public static final String WEST 将组件设置在西区
public static final String SOUTH 将组件设置在南区
public static final String NORTH 将组件设置在北区
public static final String CENTER 将组件设置在中区
方法 作用
public BorderLayout() 构造没有间距的布局器
public BorderLayout(int hgap,int vgap) 构造有水平和垂直间距的布局器

演示:

import javax.swing.*;
import java.awt.*;

public class Hello {
    public static void main(String[] args) {
        JFrame frame = new JFrame("一");
        frame.setLayout(new BorderLayout(3,3));
        frame.add(new JButton("上"),BorderLayout.NORTH);
        frame.add(new JButton("下"),BorderLayout.SOUTH);
        frame.add(new JButton("左"),BorderLayout.WEST);
        frame.add(new JButton("右"),BorderLayout.EAST);
        frame.add(new JButton("中"),BorderLayout.CENTER);
        frame.pack();
        frame.setVisible(true);
    }
}

GridLayout

GridLayout布局管理器是以表格的形式进行管理

方法 作用
public GridLayout(int rows,int cols) 构造一个指定行和列的布局管理器
public GridLayout(int rows,int cols,int hgap,int vgap) 构造时指定行和列、水平和垂直间距

演示:

import javax.swing.*;
import java.awt.*;

public class Hello {
    public static void main(String[] args) {
        JFrame frame = new JFrame("一");
        frame.setLayout(new GridLayout(3,5,3,3));
        JButton but = null;
        for(int i=0;i<15;i++){
            but = new JButton("按钮");
            frame.add(but);
        }
        frame.pack();
        frame.setVisible(true);
    }
}

CardLayout

CardLayout就是将一组组件彼此重叠地进行布局,就像一张张卡片一样,这样每次只会展现一个界面

方法 作用
public CardLayout() 构造CardLayout对象,各组件间距为0
public CardLayout(int hgap,int vgap) 构造CardLayout对象,指定组件间距
public void next(Container parent) 翻转到下一张卡片
public void previous(Container parent) 翻转到上一张卡片
public void first(Container parent) 翻转到第一张卡片
public void last(Container parent) 翻转到最后一张卡片
public void show(Container parent,String name) 显示具有指定组件名称的卡片
import javax.swing.*;
import java.awt.*;

public class Hello {
    public static void main(String[] args) {
        JFrame frame = new JFrame("一");
//        取得窗体容器
        Container cont = frame.getContentPane();
        CardLayout card = new CardLayout();
        frame.setLayout(card);
        cont.add(new JLabel("A",JLabel.CENTER),"first");
        cont.add(new JLabel("B",JLabel.CENTER),"second");
        cont.add(new JLabel("C",JLabel.CENTER),"third");
        cont.add(new JLabel("D",JLabel.CENTER),"fourth");
        cont.add(new JLabel("E",JLabel.CENTER),"fifth");
        frame.pack();
        frame.setVisible(true);
        card.show(cont,"third");
        for(int i=0;i<5;i++){
            try {
                Thread.sleep(3000);
            }catch (InterruptedException e){
            }
            card.next(cont);
        }
    }
}

绝对定位

Component中提供了setBounds()方法,可以定位一个组件的坐标,使用X、Y的坐标表示方式

public void setBounds(int x,int y,int width,int height)

演示:

import javax.swing.*;
import javax.swing.plaf.ButtonUI;

public class Hello {
    public static void main(String[] args) {
        JFrame frame = new JFrame("一");
        frame.setLayout(null);
        JLabel title = new JLabel("确定要退出吗?");
        JButton a = new JButton("确定");
        JButton b = new JButton("取消");
        frame.setSize(200,90);
        title.setBounds(45,5,150,20);
        a.setBounds(10,30,80,20);
        b.setBounds(100,30,80,20);
        frame.add(title);
        frame.add(a);
        frame.add(b);
        frame.setVisible(true);
    }
}

到此这篇关于Java程序图形用户界面设计之按钮与布局的文章就介绍到这了,更多相关Java 图形界面按钮内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java程序图形用户界面设计之容器JFrame

    目录 基本容器JFrame JFrame类的常用操作方法 创建窗体 Java程序设计 图形用户界面 [二] 基本容器JFrame JFrame类的常用操作方法 方法 作用 public JFrame() throws HeadlessException 创建一个普通的窗体对象 public JFrame(String title) throws HeadlessException 创建一个窗体对象,并指定标题 public void setSize(int width,int height) 设

  • Java图形用户界面设计(Swing)的介绍

    前言 Swing是一个用于开发Java应用程序用户界面的开发工具包.它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格.Swing开发人员只用很少的代码就可以利用Swing丰富.灵活的功能和模块化组件来创建优雅的用户界面. Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. Swing提供许多比AWT更好的屏幕显示元素.它们用纯Java写成,所以同Java本

  • Java程序图形用户界面设计之标签组件

    目录 标签组件JLabel 更改JLabel的文字样式 设置图片 Java程序设计 图形用户界面[三] 标签组件JLabel JLabel组件表示的是一个标签,本身是用于显示信息的,一般情况下是不能直接更改其显示内容的 常量 作用 public static final int LEFT 标签文本左对齐 public static final int CENTER 标签文本居中对齐 public static final int RIGHT 标签文本右对齐 方法 作用 public JLabel

  • Java图形用户界面之列表框

    列表框通过Swing组件JList产生,其总是在屏幕上占据固定行数的空间.如果要得到列表框中被选中的元素,只需调用getSelectedValuesList(),它可以产生一个字符串数组,内容为被选中的元素名称.JList组件允许多重选择:如果按住Ctrl键,可以选中所有点击的元素:如果选中一个元素,按住Shift键并单击另一个元素,那么这两个元素之间的所有元素都被选中:要从选中的元素中去掉一个,按住Ctrl键单击该元素即可. 初始化列表框后,接着便是向列表框添加和修改内容.分为静态操作和动态操

  • 开发基于Java的图形用户界面

    SWT(Standard Widget Toolkit)是IBM推出的"基于java"的图形界面开发库,我之所以说它是"基于java"的意思是程序员编写代码的时候是使用java语言,事实上SWT的底层实现是C语言完成的.但是这些对程序员是透明的. 我们使用SWT开发GUI程序的时候,直接用SWT API来写.事实上很多java的代码是通过JNI去掉用C代码来实现的.针对不同的平台每个类有不同的实现方式,这篇文章的目的不在于讲述SWT的设计原理,如果你对这些感兴趣的话

  • java图形用户界面实现菜单功能

    本文实例为大家分享了java图形用户界面实现菜单功能的具体代码,供大家参考,具体内容如下 题目:编写一个图形用户界面,实现菜单的功能.有3个一级菜单项:File.Edit和Help.在File菜单项中,有3个二级菜单项:New.Open和Save.在Edit菜单项中,有3个二级菜单项:Copy.Cut和Paste.在Help菜单项中,有一个二级菜单项About.对于每一个二级菜单项,不必真正实现其功能,只要演示它能响应鼠标单击事件即可,如弹出一个对话框或打印一句话. import java.aw

  • Java程序图形用户界面设计之按钮与布局

    目录 按钮组件 JButton JButton类常用方法 按钮上显示图片 布局管理器 FlowLayout BorderLayout GridLayout CardLayout 绝对定位 Java程序设计 图形用户界面[四] 按钮组件 JButton JButton组件表示一个普通的按钮 JButton类常用方法 方法 作用 public JButton() throws HeadlessException 创建一个Button对象 public JButton(String label) th

  • Java 入门图形用户界面设计之事件处理下

    Java程序设计 图形用户界面 [八]事件处理下 动作事件及监听处理 想让按钮变得有意义,就必须使用事件处理 使用ActionListener接口处理按钮的动作事件 方法 作用 void actionPerformed(ActionEvent e) 发生操作时调用 使用ActionListener监听 import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.

  • Java 入门图形用户界面设计之单选按钮

    Java程序设计 图形用户界面 [九]单选按钮 单选按钮 JRadioButton JRadioButton类 方法 作用 public JRadioButton(Icon icon) 建立一个单选按钮,并指定图片 public JRadioButton(Icon icon,boolean selected) 建立一个单选按钮,并指定图片和其是否选定 public JRadioButton(String text) 建立一个单选按钮,并指定其文字,默认不选定 public JRadioButto

  • Java 入门图形用户界面设计之事件处理上

    Java程序设计 图形用户界面 [七]事件处理上 事件处理 事件和监听器 事件:表示一个对象发生状态变化 监听器:不断地监听事件的变化,并根据这些事件进行相应地处理 事件类 EventObject类 EventObject类的定义格式 public class EventObject extends Object implements Serializable{ public EventObject(Object source){ // 构造一个发生事件的对象 } public Object g

  • Java 入门图形用户界面设计之复选框

    Java程序设计 图形用户界面 [十]复选框 复选框JCheckBox JCheckBox类 方法 作用 public JCheckBox(Icon icon) 创建一个带图标的对象,但不选定 public JCheckBox(Icon icon,boolean selected) 创建一个带图标的对象,并指定其是否选定 public JCheckBox(String text) 创建一个带文本的对象,但不选定 public JCheckBox(String text,boolean selec

  • Java 入门图形用户界面设计之列表框JList

    目录 列表框JList 使用ListModel构造JList JList事件处理 Java程序设计 图形用户界面 [十一]列表框JList 列表框JList JList常用方法 方法 作用 public JList(ListModel dataModel) 根据ListModel构造JList public JList(Object[] listData) 根据对象数组构造JList public JList(Vector<?> listData) 根据一个Vector构造JList publ

随机推荐