首页后端开发JAVAjava代码添加模态框 java动态加载类框架

java代码添加模态框 java动态加载类框架

时间2023-07-08 15:38:01发布访客分类JAVA浏览1483
导读:问下各位大神,在java编写的程序中点击菜单栏的一个菜单项,比如在格式菜单下的字体和颜色,弹出一个窗口 你说的是打开非模态对话框。如果模态对话框不关闭,无法操作主窗体。喊孝坦如果非模态对话框不关闭,仍然可以操作主窗体。//构造模态对话框fi...

问下各位大神,在java编写的程序中点击菜单栏的一个菜单项,比如在格式菜单下的字体和颜色,弹出一个窗口

你说的是打开非模态对话框。

如果模态对话框不关闭,无法操作主窗体。喊孝坦如果非模态对话框不关闭,仍然可以操作主窗体。

//构造模态对话框

final Dialog d = new Dialog(this, "模态对话框", true);

//构造非模态对话框

final Dialog d = new Dialog(this, "模慎圆态对话框", false);

样例程序如下:

import java.awt.Dialog;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JButton;

import javax.swing.JFrame;

public class Main extends JFrame implements ActionListener {

JButton btnModel, btnNonModel;

public Main() {

super("对话框");

this.setLayout(new FlowLayout());

btnModel = new JButton("打开模态对话框");

btnNonModel = new JButton("打开非模态对话框");

this.add(btnModel);

this.add(btnNonModel);

btnModel.addActionListener(this);

btnNonModel.addActionListener(this);

this.setSize(200, 200);

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] args) {

    new Main();

}

@Override

public void actionPerformed(ActionEvent arg0) {

JButton btn = (JButton) arg0.getSource();

if(btn == btnModel) { //打开模态对话框

final Dialog d = new Dialog(this, "模态对话框", true);

            d.setSize(800, 600);

            d.addWindowListener(new WindowAdapter() {

                public void windowClosing(WindowEvent evt) {

                    d.setVisible(false);

                }

            } );

            d.setVisible(true);

}

else if(btn == btnNonModel) { //打开非模态对话框

final Dialog d = new Dialog(this, "非模态对话框", false);

            d.setSize(800, 600);

            d.addWindowListener(new WindowAdapter() 郑桐{

                public void windowClosing(WindowEvent evt) {

                    d.setVisible(false);

                }

            } );

            d.setVisible(true);

}

}

}

Java swing 问题

setModal(true)时,显示的,是模态窗口,此时界面线程阻塞,无法操作其他迅穗散界面了,只能操作族肢此对亩氏话框上的内容。

一般用于显示警告/错误信息、录入信息等。

java 如何在jDialog里调用jFrame的组件

//问题的关键在于,如何从jDialog中获取jFrame的引用。

//我是用内部类的形式解决该问题的。而且直接操作jFrame的早清组件。

//还可以在新建自定义jDialog类时,传入jFrame的引用。

import java.awt.BorderLayout;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JDialog;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JTextArea;

import javax.swing.JTextField;

public class FrameTest extends JFrame {

    private JTextArea textArea;

    public static void main(String[] args) {

        new FrameTest();

    }

    public FrameTest() {

        this.setSize(400, 300);

        this.setDefaultCloseOperation(EXIT_ON_CLOSE);

        initPanel();

        this.setVisible(true);

    }

    private void initPanel() {

        JButton button = new JButton("Add");

        textArea = new JTextArea();

        button.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

                openDialog();

            }

        } );

        this.add(button, BorderLayout.NORTH);

        this.add(textArea, BorderLayout.CENTER);

    }

    private void openDialog() {

        final JDialog dialog = new JDialog(this, true);

    含友    dialog.setSize(300, 200);

        dialog.setLocation(getX() + 50, getY() + 50);

        dialog.setLayout(new GridLayout(3, 2));

        final JTextField name = new JTextField(10);

        final JTextField phone = new JTextField(10);

        JButton save = new JButton("保存");

        JButton cancel = new JButton("取消");

        save.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

                textArea.append(name.getText() + ":" + phone.getText() + "\n");

                dialog.dispose();

            }

        } );

        cancel.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

                dialog.dispose();

            }

        } );

        dialog.add(new JLabel("姓名:"));

        dialog.add(name);

        dialog.add(new JLabel("Tel:"));

        dialog.add(phone);

        dialog.add(save);

    谈睁槐    dialog.add(cancel);

        dialog.setVisible(true);

    }

}

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: java代码添加模态框 java动态加载类框架
本文地址: https://pptw.com/jishu/296212.html
随机画圆java代码 python随机画圆 c语言中函数可以调用几次 c语言程序中可以有多个函数

游客 回复需填写必要信息