最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java程序圖形用戶界面設(shè)計(jì)之按鈕與布局

 更新時(shí)間:2022年02月08日 17:34:04   作者:小旺不正經(jīng)  
圖形界面(簡(jiǎn)稱GUI)是指采用圖形方式顯示的計(jì)算機(jī)操作用戶界面。與早期計(jì)算機(jī)使用的命令行界面相比,圖形界面對(duì)于用戶來(lái)說(shuō)在視覺上更易于接受,本篇精講Java語(yǔ)言中關(guān)于圖形用戶界面的按鈕和布局部分

Java程序設(shè)計(jì) 圖形用戶界面【四】

按鈕組件 JButton

JButton組件表示一個(gè)普通的按鈕

JButton類常用方法

方法作用
public JButton() throws HeadlessException創(chuàng)建一個(gè)Button對(duì)象
public JButton(String label) throws HeadlessException創(chuàng)建一個(gè)Button對(duì)象,同時(shí)指定其顯示內(nèi)容
public JButton(Icon icon)創(chuàng)建一個(gè)帶圖片的按鈕
public JButton(String text,Icon icon)創(chuàng)建一個(gè)帶圖片和文字的按鈕
public void setLabel(String label)設(shè)置Button的顯示內(nèi)容
public String getLabel()得到Button的顯示內(nèi)容
public void setBounds(int x,int y,int width,int height)設(shè)置組件的大小及顯示方式
public void setMnemonic(int mnemonic)設(shè)置按鈕的快捷鍵

演示

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

public class Hello {
    public static void main(String[] args) {
        JFrame frame = new JFrame("一");
        JButton but = new JButton("點(diǎn)擊");
        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);
    }
}

image-20220207103216218

按鈕上顯示圖片

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);
    }
}

image-20220207105547511

布局管理器

在Swing中主要使用以下5種常見的布局管理器:FlowLayout、BorderLayout、GridLayout、CardLayout、絕對(duì)定位。

FlowLayout

流式布局管理器,使用此種布局方式會(huì)使所有的組件像流水一樣依次進(jìn)行排列

常量作用
public static final int CENTER居中對(duì)齊
public static final int LEADING與容器的開始端對(duì)齊方式一樣
public static final int LEFT左對(duì)齊
public static final int RIGHT右對(duì)齊
public static final int TRAILING與容器的結(jié)束端對(duì)齊方式一樣
方法作用
public FlowLayout()構(gòu)造一個(gè)新的FlowLayout,居中對(duì)齊
public FlowLayout(int align)構(gòu)造一個(gè)FlowLayout,并指定對(duì)齊方式
public FlowLayout(int align,int hgap,int vgap)指定對(duì)齊方式、水平、垂直間距

演示:

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);
    }
}

image-20220207141630755

BorderLayout

BorderLayout將一個(gè)窗體的版面劃分成東、西、南、北、中5個(gè)區(qū)域

常量作用
public static final String EAST將組件設(shè)置在東區(qū)
public static final String WEST將組件設(shè)置在西區(qū)
public static final String SOUTH將組件設(shè)置在南區(qū)
public static final String NORTH將組件設(shè)置在北區(qū)
public static final String CENTER將組件設(shè)置在中區(qū)
方法作用
public BorderLayout()構(gòu)造沒(méi)有間距的布局器
public BorderLayout(int hgap,int vgap)構(gòu)造有水平和垂直間距的布局器

演示:

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);
    }
}

image-20220207155326191

GridLayout

GridLayout布局管理器是以表格的形式進(jìn)行管理

方法作用
public GridLayout(int rows,int cols)構(gòu)造一個(gè)指定行和列的布局管理器
public GridLayout(int rows,int cols,int hgap,int vgap)構(gòu)造時(shí)指定行和列、水平和垂直間距

演示:

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);
    }
}

image-20220207160005208

CardLayout

CardLayout就是將一組組件彼此重疊地進(jìn)行布局,就像一張張卡片一樣,這樣每次只會(huì)展現(xiàn)一個(gè)界面

方法作用
public CardLayout()構(gòu)造CardLayout對(duì)象,各組件間距為0
public CardLayout(int hgap,int vgap)構(gòu)造CardLayout對(duì)象,指定組件間距
public void next(Container parent)翻轉(zhuǎn)到下一張卡片
public void previous(Container parent)翻轉(zhuǎn)到上一張卡片
public void first(Container parent)翻轉(zhuǎn)到第一張卡片
public void last(Container parent)翻轉(zhuǎn)到最后一張卡片
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);
        }
    }
}


image-20220207163316804

image-20220207163347097

絕對(duì)定位

Component中提供了setBounds()方法,可以定位一個(gè)組件的坐標(biāo),使用X、Y的坐標(biāo)表示方式

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);
    }
}

image-20220207164258588

到此這篇關(guān)于Java程序圖形用戶界面設(shè)計(jì)之按鈕與布局的文章就介紹到這了,更多相關(guān)Java 圖形界面按鈕內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java簡(jiǎn)單實(shí)現(xiàn)計(jì)算器

    java簡(jiǎn)單實(shí)現(xiàn)計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了java簡(jiǎn)單實(shí)現(xiàn)計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • java實(shí)現(xiàn)接口的典型案例

    java實(shí)現(xiàn)接口的典型案例

    下面小編就為大家?guī)?lái)一篇java實(shí)現(xiàn)接口的典型案例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • Java中多線程同步類 CountDownLatch

    Java中多線程同步類 CountDownLatch

    本篇文章主要介紹了Java中多線程同步類 CountDownLatch的相關(guān)知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-05-05
  • Spring集成Swagger常見錯(cuò)誤及解決辦法

    Spring集成Swagger常見錯(cuò)誤及解決辦法

    這篇文章主要介紹了Spring集成Swagger常見錯(cuò)誤及解決辦法,幫助大家更好的理解和學(xué)習(xí)使用Spring,感興趣的朋友可以了解下
    2021-05-05
  • Java項(xiàng)目實(shí)戰(zhàn)之在線考試系統(tǒng)的實(shí)現(xiàn)(系統(tǒng)介紹)

    Java項(xiàng)目實(shí)戰(zhàn)之在線考試系統(tǒng)的實(shí)現(xiàn)(系統(tǒng)介紹)

    這篇文章主要介紹了Java項(xiàng)目實(shí)戰(zhàn)之在線考試系統(tǒng)的實(shí)現(xiàn)(系統(tǒng)介紹),本文通過(guò)實(shí)例代碼,截圖的形式給大家展示系統(tǒng)技術(shù)架構(gòu),需要的朋友可以參考下
    2020-02-02
  • SpringBoot?@GroupSequenceProvider注解實(shí)現(xiàn)bean多屬性聯(lián)合校驗(yàn)的示例代碼

    SpringBoot?@GroupSequenceProvider注解實(shí)現(xiàn)bean多屬性聯(lián)合校驗(yàn)的示例代碼

    這篇文章主要介紹了SpringBoot?@GroupSequenceProvider注解實(shí)現(xiàn)bean多屬性聯(lián)合校驗(yàn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • 詳解Eclipse提交項(xiàng)目到GitHub以及解決代碼沖突

    詳解Eclipse提交項(xiàng)目到GitHub以及解決代碼沖突

    這篇文章主要介紹了詳解Eclipse提交項(xiàng)目到GitHub以及解決代碼沖突,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-03-03
  • java使用FFmpeg提取音頻的實(shí)現(xiàn)示例

    java使用FFmpeg提取音頻的實(shí)現(xiàn)示例

    在Java開發(fā)中,我們經(jīng)常會(huì)遇到需要使用FFmpeg來(lái)處理音視頻文件的情況,本文主要介紹了java使用FFmpeg提取音頻的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • Eclipse插件開發(fā)實(shí)現(xiàn)控制臺(tái)輸出信息的方法

    Eclipse插件開發(fā)實(shí)現(xiàn)控制臺(tái)輸出信息的方法

    今天小編就為大家分享一篇關(guān)于Eclipse插件開發(fā)實(shí)現(xiàn)控制臺(tái)輸出信息的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • Spring?Aware接口示例代碼詳解

    Spring?Aware接口示例代碼詳解

    Spring的依賴注入的最大亮點(diǎn)是所有的Bean對(duì)Spring容器的存在是沒(méi)有意識(shí)的,我們可以將Spring容器換成其他的容器,Spring容器中的Bean的耦合度因此也是極低的,本文給大家介紹Spring?Aware接口示例代碼詳解,感興趣的朋友一起看看吧
    2022-02-02

最新評(píng)論

陇西县| 巴彦县| 平阴县| 开原市| 忻城县| 遵义县| 永川市| 洞头县| 湘阴县| 广宁县| 巴青县| 南部县| 武汉市| 安福县| 遂川县| 二连浩特市| 大港区| 屯门区| 乌鲁木齐县| 开远市| 楚雄市| 奉新县| 温宿县| 三穗县| 云阳县| 嘉祥县| 凤城市| 拜城县| 荆州市| 海淀区| 四会市| 怀来县| 琼海市| 七台河市| 长子县| 新疆| 翁源县| 巴林右旗| 浦北县| 大化| 金门县|