java設置jdialog背景(java jdialog)

本文目錄一覽:

java JDialog界面製作

/**

*

* @author Administrator

*/

public class JFontChooser extends javax.swing.JDialog {

Font[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts();

String formats[] = new String[]{“無格式”, “粗體”, “斜體”, “粗斜體”};

boolean initFlag = true;

/** Creates new form JFontChooser */

public JFontChooser(java.awt.Frame parent, boolean modal) {

super(parent, modal);

initComponents();

this.jFormattedTextField1.setValue(fonts[0].getSize());

fontNameList.setSelectedIndex(0);

this.jList1.setSelectedIndex(0);

}

private void reSetPreviewValue() {

Font fontTemp = fonts[fontNameList.getSelectedIndex()];

Font font = new Font(fontTemp.getFontName(), this.jList1.getSelectedIndex(), 20);

this.previewLabel.setText(this.fontNameLabel.getText() + ” ” + this.formatLabel.getText());

previewLabel.setFont(font);

// this.previewLabel.setText(“abc”);

}

/** This method is called from within the constructor to

* initialize the form.

* WARNING: Do NOT modify this code. The content of this method is

* always regenerated by the Form Editor.

*/

@SuppressWarnings(“unchecked”)

// editor-fold defaultstate=”collapsed” desc=”Generated Code”

private void initComponents() {

java.awt.GridBagConstraints gridBagConstraints;

jPanel1 = new javax.swing.JPanel();

previewLabel = new javax.swing.JLabel();

jPanel3 = new javax.swing.JPanel();

jScrollPane1 = new javax.swing.JScrollPane();

fontNameList = new javax.swing.JList();

fontNameLabel = new javax.swing.JLabel();

fontTitleLabel = new javax.swing.JLabel();

jPanel6 = new javax.swing.JPanel();

formatLabel = new javax.swing.JLabel();

fontformatTitleLabel = new javax.swing.JLabel();

jScrollPane2 = new javax.swing.JScrollPane();

jList1 = new javax.swing.JList(formats);

jPanel5 = new javax.swing.JPanel();

sizeTitleLabel = new javax.swing.JLabel();

jFormattedTextField1 = new javax.swing.JFormattedTextField();

jScrollPane3 = new javax.swing.JScrollPane();

jList2 = new javax.swing.JList();

jPanel4 = new javax.swing.JPanel();

jButton1 = new javax.swing.JButton();

jButton2 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

setTitle(“FontChooser”);

getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(“預覽”));

jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1, javax.swing.BoxLayout.LINE_AXIS));

previewLabel.setFont(new java.awt.Font(“Arial”, 0, 12)); // NOI18N

previewLabel.setText(“abcdef”);

jPanel1.add(previewLabel);

getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 190, 150, 50));

jPanel3.setLayout(new java.awt.GridBagLayout());

jScrollPane1.setPreferredSize(new java.awt.Dimension(0, 0));

DefaultListModel model = new DefaultListModel();

for (int i = 0; i fonts.length; i++) {

model.addElement(fonts[i].getFontName());

}

fontNameList.setModel(model);

fontNameList.addListSelectionListener(new javax.swing.event.ListSelectionListener() {

public void valueChanged(javax.swing.event.ListSelectionEvent evt) {

fontNameListValueChanged(evt);

}

});

jScrollPane1.setViewportView(fontNameList);

gridBagConstraints = new java.awt.GridBagConstraints();

gridBagConstraints.gridx = 0;

gridBagConstraints.gridy = 2;

gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;

gridBagConstraints.ipadx = 80;

gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;

gridBagConstraints.weightx = 1.0;

gridBagConstraints.weighty = 1.0;

jPanel3.add(jScrollPane1, gridBagConstraints);

fontNameLabel.setText(” “);

gridBagConstraints = new java.awt.GridBagConstraints();

gridBagConstraints.gridx = 0;

gridBagConstraints.gridy = 1;

gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;

gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;

jPanel3.add(fontNameLabel, gridBagConstraints);

fontTitleLabel.setText(“字體”);

gridBagConstraints = new java.awt.GridBagConstraints();

gridBagConstraints.gridx = 0;

gridBagConstraints.gridy = 0;

gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;

gridBagConstraints.ipady = 3;

gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;

jPanel3.add(fontTitleLabel, gridBagConstraints);

getContentPane().add(jPanel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(8, 3, 190, 185));

jPanel6.setLayout(new java.awt.GridBagLayout());

formatLabel.setText(” “);

gridBagConstraints = new java.awt.GridBagConstraints();

gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;

jPanel6.add(formatLabel, gridBagConstraints);

fontformatTitleLabel.setText(“字體樣式”);

gridBagConstraints = new java.awt.GridBagConstraints();

gridBagConstraints.gridx = 0;

gridBagConstraints.gridy = 1;

gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;

jPanel6.add(fontformatTitleLabel, gridBagConstraints);

jScrollPane2.setPreferredSize(new java.awt.Dimension(24, 24));

jList1.addListSelectionListener(new javax.swing.event.ListSelectionListener() {

public void valueChanged(javax.swing.event.ListSelectionEvent evt) {

jList1ValueChanged(evt);

}

});

jScrollPane2.setViewportView(jList1);

gridBagConstraints = new java.awt.GridBagConstraints();

gridBagConstraints.gridx = 0;

gridBagConstraints.gridy = 2;

gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;

gridBagConstraints.ipadx = 80;

gridBagConstraints.ipady = 135;

jPanel6.add(jScrollPane2, gridBagConstraints);

getContentPane().add(jPanel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 0, 107, 190));

jPanel5.setLayout(new java.awt.GridBagLayout());

sizeTitleLabel.setText(“大小”);

gridBagConstraints = new java.awt.GridBagConstraints();

gridBagConstraints.gridx = 0;

gridBagConstraints.gridy = 0;

gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;

gridBagConstraints.ipady = 1;

gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;

jPanel5.add(sizeTitleLabel, gridBagConstraints);

jFormattedTextField1.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter(java.text.NumberFormat.getIntegerInstance())));

jFormattedTextField1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jFormattedTextField1ActionPerformed(evt);

}

});

gridBagConstraints = new java.awt.GridBagConstraints();

gridBagConstraints.gridx = 0;

gridBagConstraints.gridy = 1;

gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;

gridBagConstraints.ipadx = 34;

gridBagConstraints.ipady = -1;

gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;

jPanel5.add(jFormattedTextField1, gridBagConstraints);

jList2.setModel(new javax.swing.AbstractListModel() {

String[] strings = { “Item 1”, “Item 2”, “Item 3”, “Item 4”, “Item 5” };

public int getSize() { return strings.length; }

public Object getElementAt(int i) { return strings[i]; }

});

jScrollPane3.setViewportView(jList2);

gridBagConstraints = new java.awt.GridBagConstraints();

gridBagConstraints.gridx = 0;

gridBagConstraints.gridy = 2;

gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;

gridBagConstraints.ipadx = 17;

gridBagConstraints.ipady = 115;

gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;

gridBagConstraints.weightx = 1.0;

gridBagConstraints.weighty = 1.0;

jPanel5.add(jScrollPane3, gridBagConstraints);

getContentPane().add(jPanel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(310, 0, 44, 190));

jPanel4.setBorder(javax.swing.BorderFactory.createEtchedBorder());

jPanel4.setLayout(new java.awt.GridBagLayout());

jButton1.setText(“確定”);

gridBagConstraints = new java.awt.GridBagConstraints();

gridBagConstraints.gridx = 0;

gridBagConstraints.gridy = 0;

gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;

jPanel4.add(jButton1, gridBagConstraints);

jButton2.setText(“取消”);

gridBagConstraints = new java.awt.GridBagConstraints();

gridBagConstraints.gridx = 0;

gridBagConstraints.gridy = 1;

gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;

jPanel4.add(jButton2, gridBagConstraints);

getContentPane().add(jPanel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(350, 0, -1, -1));

pack();

}// /editor-fold

private void fontNameListValueChanged(javax.swing.event.ListSelectionEvent evt) {

int index = this.fontNameList.getSelectedIndex();

if (index = 0) {

this.fontNameLabel.setText(fontNameList.getSelectedValue().toString());

reSetPreviewValue();

}

}

private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) {

int index = jList1.getSelectedIndex();

if (index = 0) {

this.formatLabel.setText(jList1.getSelectedValue().toString());

reSetPreviewValue();

}

}

private void jFormattedTextField1ActionPerformed(java.awt.event.ActionEvent evt) {

}

/**

* @param args the command line arguments

*/

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

JFontChooser dialog = new JFontChooser(new javax.swing.JFrame(), true);

dialog.addWindowListener(new java.awt.event.WindowAdapter() {

public void windowClosing(java.awt.event.WindowEvent e) {

System.exit(0);

}

});

dialog.setVisible(true);

}

});

}

// Variables declaration – do not modify

private javax.swing.JLabel fontNameLabel;

private javax.swing.JList fontNameList;

private javax.swing.JLabel fontTitleLabel;

private javax.swing.JLabel fontformatTitleLabel;

private javax.swing.JLabel formatLabel;

private javax.swing.JButton jButton1;

private javax.swing.JButton jButton2;

private javax.swing.JFormattedTextField jFormattedTextField1;

private javax.swing.JList jList1;

private javax.swing.JList jList2;

private javax.swing.JPanel jPanel1;

private javax.swing.JPanel jPanel3;

private javax.swing.JPanel jPanel4;

private javax.swing.JPanel jPanel5;

private javax.swing.JPanel jPanel6;

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JScrollPane jScrollPane2;

private javax.swing.JScrollPane jScrollPane3;

private javax.swing.JLabel previewLabel;

private javax.swing.JLabel sizeTitleLabel;

// End of variables declaration

}

這個是用netBeans托好的界面,功能也完成了一部分,你參考一下,當初做了玩玩的,做了個半成品。

java如何改變JDialog的背景顏色?

java.lang.Object java.awt.Component java.awt.Container java.awt.Window java.awt.Dialog javax.swing.JDialog

Methods inherited from class java.awt.Component

setBackground

jDialog已添加兩個JPanel,如何給jDialog添加背景圖片啊,並且JPanel是透明的,求大神!

按照你的要求給jDialog添加背景圖片的Java程序如下

注意 背景圖片要放在Java當前項目的根目錄下

比如你的當前項目名是project1, 在D:\project\project1\ 下就是你的當前項目的根目錄(其中D:\project\只是打個比方,以你的實際目錄為準)

import java.awt.BorderLayout;

import java.awt.Container;

import java.awt.Dimension;

import java.awt.Image;

import java.awt.Point;

import java.awt.Rectangle;

import java.awt.Toolkit;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JDialog;

import javax.swing.JLabel;

import javax.swing.JLayeredPane;

import javax.swing.JPanel;

public class D {

 D(){

  JDialog jDialog = new JDialog();

  jDialog.setSize(400, 200);

  JPanel jp1 = new JPanel();

  JPanel jp2 = new JPanel();

  Container container = jDialog.getContentPane();  

  JPanel panelBg=new JPanel();

  JPanel panelContent=new JPanel();

  JLayeredPane lp=new JLayeredPane();

  Dimension dimension = new Dimension(jDialog.getWidth(), jDialog.getHeight());  

  lp.setSize(dimension);  

  panelContent.setLayout(new BorderLayout());

  Image imageBg = Toolkit.getDefaultToolkit().getImage(“autumn1.jpg”);

  ImageIcon imageIcon = new ImageIcon(imageBg.getScaledInstance

    (dimension.width, dimension.height, Image.SCALE_FAST));

  JLabel jl1 = new JLabel(imageIcon);

  Point origin = new Point(0, 0);

  Rectangle rectangle = new Rectangle(origin, dimension);

  panelBg.setBounds(rectangle);

  panelBg.setLayout(new BorderLayout());

  panelBg.add(jl1,BorderLayout.CENTER);

  JLabel jl = new JLabel(“正在測量……”);

  jp1.add(jl);

  JButton jb = new JButton(“取消”);

  jp2.add(jb);

  jp1.setOpaque(false);

  jp2.setOpaque(false);

  panelContent.setBounds(rectangle);

  panelContent.add(jp1,BorderLayout.CENTER);

  panelContent.add(jp2,BorderLayout.SOUTH);

  panelContent.setOpaque(false);

  lp.add(panelBg,new Integer(0));

  lp.add(panelContent, new Integer(1));  

  container.add(lp, BorderLayout.CENTER);  

  jDialog.setUndecorated(true);

  jDialog.setLocationRelativeTo(null);

  jDialog.setVisible(true); 

 }

 public static void main(String[] args) {

  new D();

 }

}

運行結果

java swing Jpanel 怎麼添加一個Jdialog彈出框

通過: 彈出框, 顧名思義就是剛開始看不見, 觸發某個事件後彈出的一個框

所以 我們要讓JPanel響應指定的事件然後彈出 . 比如常見的事件, 鼠標點擊JPanel後彈出

彈出框. 一般有兩種方法實現

方法一:JOptionPane 創建1個簡單的彈出框.(代碼量少, 效果簡單)

方法二Dialog/JDialog 創建1個彈出框.(代碼量長,可以實現複雜的效果)

效果圖

參考代碼

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Demo extends JFrame {

JPanel jp;

static final String title = “Message”;

static final String content = “Eggs aren’t supposed to be green.”;

public Demo() {

jp = new JPanel();

jp.setBackground(Color.PINK);

jp.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

//方法1

JOptionPane.showMessageDialog(null, content, title, JOptionPane.INFORMATION_MESSAGE);

//方法2

new MyDailog(title, content).setVisible(true);// 創建1個對話框,並且設置為可見

}

});

add(jp);

setTitle(“測試Demo”);// 標題

setSize(280, 280);// 窗口大小

setLocationRelativeTo(null);// 窗口居中

setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口點擊關閉時,退出程序

setVisible(true);// 窗口可見

}

public static void main(String[] args) {

new Demo();

}

}

// 對話框類

class MyDailog extends JDialog implements ActionListener {

String title;

String content;

public MyDailog(String title, String content) {

this.title = title;

this.content = content;

ImageIcon icon = new ImageIcon(“tp.png”);// 創建1個圖標實例

JLabel jlImg = new JLabel(icon);// 1個圖片標籤,顯示圖片

JLabel jl = new JLabel(content);// 1個文字標籤,顯示文本

jl.setForeground(Color.BLUE);// 設置文字的顏色為藍色

JButton jb = new JButton(“確定”);// 創建1個按鈕

jb.addActionListener(this);// 給按鈕添加響應事件

add(jlImg);// 向對話框加入圖片標籤

add(jl);// 向對話框加入文字標籤

add(jb);// 向對話框添加按鈕

setLayout(new FlowLayout());// 對話框流式布局

setIconImage(icon.getImage());// 窗口左上角的小圖標

setTitle(title);// 設置標題

setModal(true);// 設置為模態窗口

setSize(275, 135);// 設置對話框大小

setLocationRelativeTo(null);// 對話框局域屏幕中央

setResizable(false);// 對話框不可縮放

setDefaultCloseOperation(DISPOSE_ON_CLOSE);// 當對話框窗口的關閉按鈕[X]被點擊時,銷毀對話框

}

// 當確定按鈕被點擊時會執行下面的方法

@Override

public void actionPerformed(ActionEvent e) {

if (e.getActionCommand().equals(“確定”)) {// 判斷是不是確定按鈕被點擊

this.setVisible(false);// 對話框不可見

this.dispose();// 對話框銷毀

}

}

}

java jdialog 怎麼用

JDialog 對話框 , 一般用於滿足比較複雜的彈出對話框, 比如 很多的輸入框, 很多的按鈕等情況

JOptionPane 也是對話框, 但是它一般只用於簡單的提示, 輸入, 選擇, 警告 , 不能進行複雜的自定義.

下面寫1個簡單的使用JDialog來提示的對話框

import javax.swing.*;

import java.awt.event.*;

public class DialogFrame extends JFrame implements ActionListener {

JPanel jp1;

JTextField jtf;

JButton jb1;

public DialogFrame() {

jp1 = new JPanel();

JLabel jl1 = new JLabel(“請輸入用戶名”);

jtf = new JTextField(8);

jb1 = new JButton(“確定”);

jb1.addActionListener(this);

jp1.add(jl1);

jp1.add(jtf);

jp1.add(jb1);

add(jp1);

// 窗口屬性設置

setTitle(“JFrame”);// 標題

setSize(380, 180);// 窗口大小

setLocationRelativeTo(null);// 窗口居中

setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口點擊關閉時,退出程序

}

public static void main(String[] args) {

new DialogFrame().setVisible(true);

}

@Override

public void actionPerformed(ActionEvent e) {

if (jb1 == e.getSource()) {

String name = jtf.getText().trim();

if (name.equals(“”)) {// 驗證是否輸入了有效的字符串

// 字符串為””, 那麼彈出對話框進行提示

new TPDialog(this, “提示”, true, “Sorry! 用戶名必須填寫,不能為空!”);

// 第一個參數 this 代表了本JFrame對象

// 第二個參數 標題

// 第三個參數 true表示模態窗口, 該窗口置頂,並且如果不關閉,無法點擊其他的組件

// 第四個參數 表示了對話框要彈出的信息內容是什麼

}

}

}

}

class TPDialog extends JDialog {

public TPDialog(JFrame jf, String title, boolean flag, String info) {

super(jf, title, flag); //調用父類的構造器

// 第一個參數 this 代表了本JFrame對象

// 第二個參數 標題

// 第三個參數 true表示模態窗口, 該窗口置頂,並且如果不關閉,無法點擊其他的組件

JLabel jl = new JLabel(info);

add(jl);

setSize(230, 100);//大小

setLocationRelativeTo(null);//居中

setVisible(true);

setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);//點擊關閉時,銷毀對話框

}

}

效果顯示

java中JDialog的用法?

Dialog1 實際上是創建一個對話框,實現代碼如下:

class Dialog1 {

JDialog jd=new JDialog(jf,”JDialog窗體”,true);

Dialog1(){

jd.setSize(300,200);

Container c2=jd.getContentPane();

c2.setLayout(null);

JLabel jl=new JLabel(“只是一個對話框”);

jl.setBounds(0,-20,100,100);

JButton jbb=new JButton(“確定”);

jbb.setBounds(100,100,60,30);

c2.add(jl);

c2.add(jbb);

jbb.addActionListener(new ActionListener(){ //對按鈕增加監聽事件

@Override

public void actionPerformed(ActionEvent e) {

jd.dispose(); //關閉窗體

}

});

System.out.println(“OK”);

jd.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); //關閉對話框

}

}

原創文章,作者:EPL80,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/127332.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
EPL80的頭像EPL80
上一篇 2024-10-03 23:15
下一篇 2024-10-03 23:15

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python換背景後,邊緣降噪怎麼辦?

    對於這個問題,我們可以從多個方面來解決。 一、背景替換的方法 在背景替換之前,我們需要先將圖像的邊緣進行處理,避免在替換過程中出現鋸齒狀的邊緣。 首先,我們可以通過腐蝕和膨脹的操作…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發佈。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29

發表回復

登錄後才能評論