本文目錄一覽:
- 1、java JDialog界面製作
- 2、java如何改變JDialog的背景顏色?
- 3、jDialog已添加兩個JPanel,如何給jDialog添加背景圖片啊,並且JPanel是透明的,求大神!
- 4、java swing Jpanel 怎麼添加一個Jdialog彈出框
- 5、java jdialog 怎麼用
- 6、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