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

JavaGUI常用窗體組件與面板使用詳解

 更新時間:2023年03月06日 08:31:36   作者:頭禿小程  
GUI即圖形用戶界面,它是基于圖形的界面,windows就是一個圖形用戶界面的操作系統(tǒng),而DOS是基于命令提示符的操作系統(tǒng),GUI編程就是編出一個圖形用戶界面的軟件,它使用圖形的方式,以菜單、按鈕、表示、圖文框等標準界面元素組成的用戶操作界面

1.常用的窗體

1.概述

Swing組件通常被稱作“輕量級組件”,它完全由Java編寫,不依賴操作系統(tǒng)語言。

類繼承關(guān)系

JavaSwing組件間的繼承關(guān)系

JComponent 是swing組件存放的位置,常見的組件如下:

2.JFrame

JFrame是一個容器,它是各個組件的載體,在開發(fā)的過程中,我們通過繼承 java.swing。JFrame 來創(chuàng)建要的窗體

1.新建JFrame對象

JFrame()創(chuàng)建沒有標題窗口

Frame(String s)創(chuàng)建標題為s的窗口

2.設(shè)置JFrame的大小

public void setSize(int width,int height) 設(shè)置窗口的大小
public void setLocation(int x,int y)  設(shè)置窗口的位置,默認位置是(0,0)
public void setBounds(int a,int b,int width,int height)  設(shè)置窗口的初始值位置是(a,b),窗口的寬是width,高是height
public void setVisible(boolean b)  設(shè)置窗口是否可見,窗口默認是不可見的
public void setResizable(boolean b)  設(shè)置窗口是否可調(diào)節(jié)大小,默認是可調(diào)整大小
public void dispose()  撤銷當前窗口,并釋放當前窗口所使用的資源
public void setExtendedState(int state)  設(shè)置窗口的擴展狀態(tài),其中參數(shù)state取JFrame類中的下列類常量:
MAXIMIZED_HORIZ(水平方向最大化)
MAXIMIZED_VERT(垂直方向最大化)
MAXIMIZED_BOTH(水平、垂直方向都最大化)

3.設(shè)定JFrame

import javax.swing.*;//導入swing這個包的所有類和接口
public class A {
    public static void main(String[] args){
        JFrame jf=new JFrame("hello");
//        jf.setSize(400,300);
//        jf.setLocation(600,350);
        jf.setBounds(600,350,400,300);
        jf.setVisible(true);//設(shè)置框架是否可見,true為可見,默認不可見。所以一定要寫?。。。?
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//設(shè)置窗體關(guān)閉方式(直接關(guān)閉應(yīng)用程序),也可以寫成JFrame.EXIT_ON_CLOSE
    }
}
import javax.swing.*;

這是java導入包的語法,表示導入swing這個包的所有類和接口

swing是圖形可視包,導入這個包后才能進行GUI圖形化軟件的開發(fā)

import    代表“引入”

javax.swing  代表“路徑” (在javax文件夾下的swing文件夾)

*         代表“全部”

3.JDialog

繼承自 java.awt.Dialog 類。它是從一個窗體彈出來的另外一個窗體,它和Frame類似,需要調(diào)用 getContentPane 將窗體轉(zhuǎn)換為容器,然后在容器中設(shè)置窗體的內(nèi)存

JDialog:可當成——JFrame使用,但必須從屬于JFrame

構(gòu)造函數(shù)

JDialog();
JDialog(Frame f);//指定父窗口
JDailog(Frame f,String title);//指定父窗口 + 標題

關(guān)閉方式比JFrame少一種:

import javax.swing.*;//導入swing這個包的所有類和接口
public class A {
    public static void main(String[] args){
        JFrame jf=new JFrame("hello");
//        jf.setSize(400,300);
//        jf.setLocation(600,350);
        jf.setBounds(600,350,400,300);
        jf.setVisible(true);//設(shè)置框架是否可見,true為可見,默認不可見。所以一定要寫?。。?!
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//設(shè)置窗體關(guān)閉方式(直接關(guān)閉應(yīng)用程序),也可以寫成JFrame.EXIT_ON_CLOSE
        JDialog jd=new JDialog(jf,"JDailog");
        jd.setBounds(700,450,200,150);
        jd.setVisible(true);
        jd.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    }
}

2.常用的面板

面板也是一種swing容器,它可以作為容器添加容納其他的組件,但是他自己必須被加在一個容器內(nèi)

1.JPanel

JPanel 就是一種最簡單的面板,他繼承 java.awt.Contaniner 類

import javax.swing.*;
import java.awt.*;
public class B {
    public static void main(String[] args){
        JFrame jf=new JFrame("JPanel");
        jf.setBounds(600,350,600,500);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JButton jb1=new JButton("按鈕1");
        JButton jb2=new JButton("按鈕2");
        JPanel jp=new JPanel(new FlowLayout());
        jp.setPreferredSize(new Dimension(100,60));//這串代碼好像并沒有體現(xiàn),不知道什么原因
        jp.setBackground(Color.gray);
        jf.add(jp);
        jp.add(jb1);
        jp.add(jb2);
    }
}

修改代碼

import javax.swing.*;
import java.awt.*;
public class B {
    public static void main(String[] args){
        JFrame jf=new JFrame("JPanel");
        jf.setBounds(300,350,500,500);
        jf.setLayout(null);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JButton jb1=new JButton("按鈕1");
        JButton jb2=new JButton("按鈕2");
        JPanel jp=new JPanel(new FlowLayout());
        jp.setBounds(100,100,300,300);
        jp.setBackground(Color.gray);
        jf.add(jp);
        jp.add(jb1);
        jp.add(jb2);
    }
}

還是想有大佬可以指點一下問題的原因

2.JScrollPane

JScrollPane是帶滾動條的面板。因此,在碰到需要將一個達到組件放到一個小較小的空間的時候,使用該面板,JScollPane 內(nèi)只能添加一個個組件;因此,如果需要將多個組件添加到一個JScollPane 中時,需要添加的組件添加到 JPanel 中,再將 JPanel 添加到 JScollPane 中

import javax.swing.*;
import java.awt.*;
public class JScrollpane {
    public static void main (String[] args){
        JFrame jf=new JFrame("JScollPane");
        jf.setBounds(500,500,500,200);
        JButton jb=new JButton("香蕉");
        JButton jb2=new JButton("蘋果");
        JButton jb3=new JButton("菠蘿蜜");
        jb.setPreferredSize(new Dimension(300,300));
        JPanel jp=new JPanel();
        jp.add(jb);
        jp.add(jb2);
        jp.add(jb3);
        JScrollPane js=new JScrollPane(jp);
        jf.add(js);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

補充:

JButton在FlowLayout、BorderLayout等一些布局中使用setSize()設(shè)置大小無法生效的,可以使用setPreferredSize方法進行設(shè)置

使用布局管理器時,使用setPreferredSize方法:

jbutton.setPreferredSize(new Dimension(w,h));

使用絕對布局時:

jbutton.setBounds(x,y,w,h);

到此這篇關(guān)于JavaGUI常用窗體組件與面板使用詳解的文章就介紹到這了,更多相關(guān)JavaGUI窗體組件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java把Map轉(zhuǎn)為對象的實現(xiàn)代碼

    Java把Map轉(zhuǎn)為對象的實現(xiàn)代碼

    在項目開發(fā)中,經(jīng)常碰到map轉(zhuǎn)實體對象或者對象轉(zhuǎn)map的場景,工作中,很多時候我們可能比較喜歡使用第三方j(luò)ar包的API對他們進行轉(zhuǎn)化,但這里,我想通過反射的方式對他們做轉(zhuǎn)化,感興趣的同學跟著小編來看看吧
    2023-08-08
  • SpringBoot整合EasyExcel實現(xiàn)文件導入導出

    SpringBoot整合EasyExcel實現(xiàn)文件導入導出

    這篇文章主要介紹了SpringBoot整合EasyExcel實現(xiàn)文件導入導出的方法,幫助大家更好的理解和學習使用SpringBoot,感興趣的朋友可以了解下
    2021-05-05
  • Java輸入輸出流復制文件所用時間對比

    Java輸入輸出流復制文件所用時間對比

    這篇文章主要介紹了Java輸入輸出流復制文件所用時間對比的相關(guān)資料,非常不錯,具有參考解決價值,需要的朋友可以參考下
    2016-08-08
  • Java 將Excel轉(zhuǎn)為SVG的方法

    Java 將Excel轉(zhuǎn)為SVG的方法

    本文以Java示例展示如何將Excel文檔轉(zhuǎn)為SVG格式。通過本文中的方法,在將Excel轉(zhuǎn)為SVG時,如果sheet工作表中手動設(shè)置了分頁,則將每個分頁的內(nèi)容單獨保存為一個svg文件,如果sheet工作表中沒有設(shè)置分頁,則將Excel sheet表格中默認的分頁范圍保存為svg。
    2021-05-05
  • java實現(xiàn)的簡單猜數(shù)字游戲代碼

    java實現(xiàn)的簡單猜數(shù)字游戲代碼

    這篇文章主要介紹了java實現(xiàn)的簡單猜數(shù)字游戲代碼,通過隨機數(shù)與邏輯判斷來實現(xiàn)游戲功能,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-11-11
  • 探討:如何在NDK中呼叫Java的class

    探討:如何在NDK中呼叫Java的class

    本篇文章是對如何在NDK中呼叫Java的class進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • Java中用戶線程與守護線程的使用區(qū)別

    Java中用戶線程與守護線程的使用區(qū)別

    這篇文章主要介紹了Java中用戶線程與守護線程的使用區(qū)別,Java語言中無論是線程還是線程池,默認都是用戶線程,因此用戶線程也被成為普通線程,下文關(guān)于其與守護線程的區(qū)別詳情,需要的小伙伴可以參考一下
    2022-05-05
  • Java運行時數(shù)據(jù)區(qū)概述詳解

    Java運行時數(shù)據(jù)區(qū)概述詳解

    這篇文章主要介紹了Java運行時數(shù)據(jù)區(qū)概述,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • SpringBoot?異步線程間傳遞上下文方式

    SpringBoot?異步線程間傳遞上下文方式

    這篇文章主要介紹了SpringBoot?異步線程間傳遞上下文方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Spring中的aware接口詳情

    Spring中的aware接口詳情

    這篇文章主要介紹了Spring中的aware接口詳情,Spring中有很多繼承于aware中的接口,這些接口到底是做什么用到的,下面我們就一起來看看吧,文章詳細內(nèi)容需要的小伙伴可以參考一下
    2022-05-05

最新評論

黄山市| 临朐县| 青龙| 威信县| 师宗县| 新源县| 通州区| 亳州市| 临邑县| 和平区| 荣昌县| 本溪市| 潼关县| 阜新| 晴隆县| 铜山县| 明光市| 达孜县| 乐山市| 盐津县| 山西省| 柳州市| 马关县| 墨竹工卡县| 北海市| 济阳县| 庄浪县| 屏南县| 东莞市| 唐海县| 黄浦区| 枞阳县| 峨边| 永寿县| 济宁市| 阜南县| 内黄县| 株洲县| 垣曲县| 龙里县| 永兴县|