Java摇摆 |带有示例的 JDialog
JDialog 是Java swing 包的一部分。对话框的主要目的是向其中添加组件。 JDialog可以根据用户需要定制。
类的构造函数是:
- JDialog() : 创建一个没有任何标题或任何指定所有者的空对话框
- JDialog(Frame o) : 创建一个空对话框,指定框架为所有者
- JDialog(Frame o, String s) : 创建一个以指定框架为所有者的空对话框
和指定的标题 - JDialog(Window o) : 创建一个以指定窗口为所有者的空对话框
- JDialog(Window o, String t) : 创建一个空对话框,指定窗口为所有者,指定标题。
- JDialog(Dialog o) :创建一个空对话框,指定对话框为其所有者
- JDialog(Dialog o, String s) : 创建一个空对话框,指定对话框作为它的所有者和指定的标题。
常用方法
- setLayout(LayoutManager m) : 将对话框的布局设置为指定的布局管理器
- setJMenuBar(JMenuBar m) : 将对话框的菜单栏设置为指定的菜单栏
- add(Component c) : 将组件添加到对话框
- isVisible(boolean b) : 设置对话框的可见性,如果布尔值为真则可见,否则不可见
- update(Graphics g) : 调用paint(g)函数
- remove(Component c) : 移除组件 c
- getGraphics() :返回组件的图形上下文。
- getLayeredPane() :返回对话框的分层窗格
- setContentPane(Container c) :设置对话框的内容窗格
- setLayeredPane(JLayeredPane l) :设置对话框的分层窗格
- setRootPane(JRootPane r) : 设置对话框的 rootPane
- getJMenuBar() :返回组件的菜单栏
- setTransferHandler(TransferHandler n) :设置 transferHandler 属性,这是一种支持将数据传输到此组件的机制。
- setRootPaneCheckingEnabled(boolean enabled) :设置对 add 和 setLayout 的调用是否转发到 contentPane。
- setRootPane(JRootPane root) :设置对话框的 rootPane 属性。
- setGlassPane(Component glass) :设置对话框的 glassPane 属性。
- repaint(long time, int x, int y, int width, int height) : 在 time 毫秒内重绘该组件的指定矩形。
- remove(Component c) :从对话框中删除指定的组件。
- isRootPaneCheckingEnabled() :返回对 add 和 setLayout 的调用是否转发到 contentPane 。
- getTransferHandler() :返回 transferHandler 属性。
- getRootPane() :返回此对话框的 rootPane 对象。
- getGlassPane() :返回此对话框的 glassPane 对象。
- createRootPane() :由构造方法调用以创建默认的 rootPane。
- addImpl(Component co, Object c, int i) :将指定的子组件添加到对话框中。
以下程序将说明 JDialog 的使用
1 .Program创建一个简单的JDialog
Java
// java Program to create a simple JDialog
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
class solve extends JFrame implements ActionListener {
// frame
static JFrame f;
// main class
public static void main(String[] args)
{
// create a new frame
f = new JFrame("frame");
// create a object
solve s = new solve();
// create a panel
JPanel p = new JPanel();
JButton b = new JButton("click");
// add actionlistener to button
b.addActionListener(s);
// add button to panel
p.add(b);
f.add(p);
// set the size of frame
f.setSize(400, 400);
f.show();
}
public void actionPerformed(ActionEvent e)
{
String s = e.getActionCommand();
if (s.equals("click")) {
// create a dialog Box
JDialog d = new JDialog(f, "dialog Box");
// create a label
JLabel l = new JLabel("this is a dialog box");
d.add(l);
// setsize of dialog
d.setSize(100, 100);
// set visibility of dialog
d.setVisible(true);
}
}
}
Java
// java Program to create a dialog within a dialog
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
class solve extends JFrame implements ActionListener {
// frame
static JFrame f;
// dialog
static JDialog d, d1;
// main class
public static void main(String[] args)
{
// create a new frame
f = new JFrame("frame");
// create a object
solve s = new solve();
// create a panel
JPanel p = new JPanel();
JButton b = new JButton("click");
// add actionlistener to button
b.addActionListener(s);
// add button to panel
p.add(b);
f.add(p);
// set the size of frame
f.setSize(400, 400);
f.show();
}
public void actionPerformed(ActionEvent e)
{
String s = e.getActionCommand();
if (s.equals("click")) {
// create a dialog Box
d = new JDialog(f, "dialog Box");
// create a label
JLabel l = new JLabel("this is first dialog box");
// create a button
JButton b = new JButton("click me");
// add Action Listener
b.addActionListener(this);
// create a panel
JPanel p = new JPanel();
p.add(b);
p.add(l);
// add panel to dialog
d.add(p);
// setsize of dialog
d.setSize(200, 200);
// set visibility of dialog
d.setVisible(true);
}
else { // create a dialog Box
d1 = new JDialog(d, "dialog Box");
// create a label
JLabel l = new JLabel("this is second dialog box");
d1.add(l);
// setsize of dialog
d1.setSize(200, 200);
// set location of dialog
d1.setLocation(200, 200);
// set visibility of dialog
d1.setVisible(true);
}
}
}
输出:
2.程序在对话框内创建对话框
Java
// java Program to create a dialog within a dialog
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
class solve extends JFrame implements ActionListener {
// frame
static JFrame f;
// dialog
static JDialog d, d1;
// main class
public static void main(String[] args)
{
// create a new frame
f = new JFrame("frame");
// create a object
solve s = new solve();
// create a panel
JPanel p = new JPanel();
JButton b = new JButton("click");
// add actionlistener to button
b.addActionListener(s);
// add button to panel
p.add(b);
f.add(p);
// set the size of frame
f.setSize(400, 400);
f.show();
}
public void actionPerformed(ActionEvent e)
{
String s = e.getActionCommand();
if (s.equals("click")) {
// create a dialog Box
d = new JDialog(f, "dialog Box");
// create a label
JLabel l = new JLabel("this is first dialog box");
// create a button
JButton b = new JButton("click me");
// add Action Listener
b.addActionListener(this);
// create a panel
JPanel p = new JPanel();
p.add(b);
p.add(l);
// add panel to dialog
d.add(p);
// setsize of dialog
d.setSize(200, 200);
// set visibility of dialog
d.setVisible(true);
}
else { // create a dialog Box
d1 = new JDialog(d, "dialog Box");
// create a label
JLabel l = new JLabel("this is second dialog box");
d1.add(l);
// setsize of dialog
d1.setSize(200, 200);
// set location of dialog
d1.setLocation(200, 200);
// set visibility of dialog
d1.setVisible(true);
}
}
}
输出 :
注意:以上程序可能无法在在线编译器中运行,请使用离线 IDE