日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java实现一个gui面板_JAVA GUI自定义JPanel画板背景

發布時間:2024/9/27 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java实现一个gui面板_JAVA GUI自定义JPanel画板背景 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

自定義JPanel面板背景

一、前言

1.GUI全稱是Graphical User Interface,就是圖形用戶界面。JAVA的GUI應用廣泛在我們生活中也很常見。很多應用使用該GUI編程設計,像點擊QQ圖標彈出對應的登錄窗體。

一般程序與用戶的交互都基于對應程序的運行界面。

2.JPanel面板是SWING下的一個面板容器類。該面板支持嵌套,可設置布局方式,設置不同的布局管理器可添加其他控件像JButton按鈕,JTextField文本框等。來設計完善一個程序界面窗體。

作為繪制面板支持setBackground()設置背景顏色的方法還遠遠不夠。這里實現自定義為JPanel設置圖片背景。

二、平臺工具

1.MyEclipse

此處演示使用myeclipse2014

其他支持java awt+swing平臺也可

三、圖文展示

1.同一窗體下做不同處理JPanel的效果

(1)首先創建一個不加修飾的窗體,一般的普通默認jpanel界面效果如下:

(2)簡單的設置背景顏色效果:

(3)自定義處理后的JPanel下的窗體效果:

2.代碼實現

自定義JPanel背景處理,該圖片為bg.PNG,與測試類在同一路徑下,使用圖片注意使用相對路徑

import java.awt.Graphics;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class GUITest {

private static JFrame jframe; //聲明一個窗體

private JPanel jpanel; //聲明一個畫板

public GUITest(){ //構造方法

jframe = new JFrame();

init();

}

private void init(){

jframe.setTitle("測試");

jpanel = new JPanel(){//關鍵代碼,就是重寫了paint的一個方法

@Override

protected void paintComponent(Graphics g) {

super.paintComponent(g);

ImageIcon img = new ImageIcon(GUITest.class.getResource("bg.png"));

/**

* bg.PNG這個地方換成自己的圖片

* 此處使用的相對路徑,bg.png跟該測試類在同一路徑下

* 不過建議使用相對路徑避免使用絕對路徑

*/

img.paintIcon(this, g, 0, 0);

}

};

jpanel.setOpaque(true);

jframe.setBounds(200, 200, 500, 400); //設置顯示位置距離左邊200像素距離上邊200像素及屏幕大小500*400

jframe.add(jpanel); //添加畫板到窗體

jframe.setVisible(true); //設置顯示界面

}

public static void main(String[] args) {

new GUITest(); // 實例化對象

}

}

四、拓展布局管理器

下面簡單寫個登錄窗體:

基于自定義的JPanel背景,設置GridBagLayout布局,添加按鈕文本框等基本控件實現的一個簡單登錄窗體。

(1)代碼如下:

import java.awt.Graphics;

import java.awt.GridBagConstraints;

import java.awt.GridBagLayout;

import java.awt.Insets;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JPasswordField;

import javax.swing.JTextField;

public class GUIT {

//聲明窗體,面板及控件

private static JFrame jframe;

private JLabel jlabel,jlabel1;

private GridBagLayout gridbag;

private GridBagConstraints constraints;

private JTextField jtfield1;

private JPasswordField jpfield1;

private JButton jbutton1,jbutton2,jbutton3;

private JPanel jpanel;

public GUIT(){

jframe = new JFrame();

jlabel = new JLabel();

jlabel1 = new JLabel();

jtfield1 = new JTextField();

jpfield1 = new JPasswordField();

gridbag = new GridBagLayout();

jbutton1 = new JButton();

jbutton2 = new JButton();

jbutton3 = new JButton();

init();

}

/**

* init()初始化并顯示界面

*/

private void init(){

jframe.setTitle("登錄");

/**

* 設置JPanel背景

*/

jpanel = new JPanel(){

@Override

protected void paintComponent(Graphics g) {

super.paintComponent(g);

ImageIcon img = new ImageIcon(GUITest.class.getResource("ddmbg.jpg"));

img.paintIcon(this, g, 0, 0);

}

};

//為JLabel,JButton初始化文本

jlabel.setText("用戶名:");

jlabel1.setText("密 碼:");

jbutton1.setText("登錄");

jbutton2.setText("退出");

jbutton3.setText("注冊");

//設置顯示位置及屏幕大小500*400

jframe.setBounds(450, 240, 400, 240);

//jpanel采用GridBagLayout布局管理器

jpanel.setOpaque(false);

jpanel.setLayout(gridbag);

//初始化用戶名label,并添加該控件到畫板

constraints = getGridBagConstraints(0,0,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(10,0,10,0),0,0);

gridbag.setConstraints(jlabel, constraints);

jpanel.add(jlabel);

//初始化用戶名文本框,并添加該組件到畫板

constraints = getGridBagConstraints(1,0,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(10,0,10,0),100,0);

gridbag.setConstraints(jtfield1, constraints);

jpanel.add(jtfield1);

//初始化密碼label

constraints = getGridBagConstraints(0,1,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(10,0,10,0),0,0);

gridbag.setConstraints(jlabel1, constraints);

jpanel.add(jlabel1);

//初始化密碼文本框

constraints = getGridBagConstraints(1,1,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(10,0,10,0),100,0);

gridbag.setConstraints(jpfield1, constraints);

jpanel.add(jpfield1);

//初始化注冊按鈕,并添加該控件到畫板

constraints = getGridBagConstraints(0,2,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(10,0,10,0),0,0);

gridbag.setConstraints(jbutton3, constraints);

jpanel.add(jbutton3);

//初始化登錄按鈕

constraints = getGridBagConstraints(1,2,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(10,0,10,0),0,0);

gridbag.setConstraints(jbutton1, constraints);

jpanel.add(jbutton1);

//初始化退出按鈕

constraints = getGridBagConstraints(2,2,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(10,0,10,0),0,0);

gridbag.setConstraints(jbutton2, constraints);

jpanel.add(jbutton2);

//添加畫板到窗體

jframe.add(jpanel);

//窗體初始化完成

}

private static GridBagConstraints getGridBagConstraints(int gridx,int gridy,int gridwidth,int gridheight,double weightx,double weighty,int anchor,int fill,Insets insets,int ipadx,int ipady){

return new GridBagConstraints(gridx, gridy, gridwidth, gridheight, weightx, weighty, anchor, fill, insets, ipadx, ipady);

}

public static void main(String[] args) {

new GUIT();

jframe.setVisible(true);

}

}

其中ddmbg為圖片名

(2)實現效果如圖所示:

GUI設計中布局是基礎也是十分重要的知識。

熟練使用掌握三大布局及其他布局管理器需要自己敲代碼練習了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

總結

以上是生活随笔為你收集整理的java实现一个gui面板_JAVA GUI自定义JPanel画板背景的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久老司机 | 欧美日韩一区二区电影 | 久久综合激情 | 国内视频一区二区 | 黄色大片视频网站 | 国产一级色 | 欧美日韩有码 | 日本成人在线播放 | 亚洲av激情无码专区在线播放 | 成人毛片18女人 | xxxxx在线| 国产精品无码免费播放 | 婷婷网址 | 国产主播中文字幕 | 我的公把我弄高潮了视频 | 丰满少妇麻豆av苏语棠 | 亚洲精品一级二级 | 精品蜜桃一区二区三区 | 超碰在线观看av | 精人妻无码一区二区三区 | 18一20岁毛毛片 | 色偷偷五月天 | 新天堂av | 国产在线一区二 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产精品无码999 | 亚洲精品动漫在线观看 | 免费中文av | av爱爱爱 | 古装做爰无遮挡三级聊斋艳谭 | 国产免费一区二区 | 日韩人妻精品一区二区三区 | 天天操天天干天天 | sm捆绑调教视频 | 精品人妻一区二区三区四区不卡 | 一区久久久 | 免费福利视频网站 | 邻居少妇张开腿让我爽了在线观看 | 黄色一级影片 | 国产精品丝袜黑色高跟鞋 | 国产性色av | 美女网站在线 | 免费看的黄色小视频 | 中文字幕8 | 电影寂寞少女免费观看 | 欧美污视频在线观看 | 欧美人妻精品一区二区 | 久久国产热视频 | 岛国片免费在线观看 | 亚洲资源在线 | 中文亚洲字幕 | 操操操爽爽爽 | 十八禁一区二区三区 | 自拍偷拍第1页 | 天天干,天天操 | 免费久久视频 | 色偷偷免费费视频在线 | 国产精品一二 | 亚洲国产中文字幕在线观看 | 五月天久久久 | 人人看人人爱 | 欧美亚洲在线播放 | 天天射天天干天天操 | 国产91av在线播放 | 国产女人呻吟高潮抽搐声 | 日韩电影在线一区二区 | 国产黄在线 | 国产黑丝在线观看 | 尤果网福利视频在线观看 | 一区二区三区免费观看 | 亚洲欧美动漫 | 中文字幕在线观看线人 | 欧美伦乱| 欧美天天射 | 超碰pron | 国产精品一区二区麻豆 | 欧美成人一区二区 | 色图18p| 成人无码www在线看免费 | free国产hd露脸性开放 | 亚洲在线色 | 91国偷自产一区二区三区女王 | 少妇又紧又爽视频 | 国产精品一线二线 | 新版红楼梦在线高清免费观看 | 国产jizz | 爱豆国产剧免费观看大全剧集 | 国产精品探花一区二区三区 | 北条麻妃在线一区二区 | 日韩小视频在线 | 精品91久久久久久 | 丰满少妇一区二区 | 99热这里只有精品99 | 动漫涩涩免费网站在线看 | 日操操| 色噜噜在线观看 | 久久99精品国产麻豆91樱花 | 翔田千里在线播放 | 超碰福利在线观看 |