如何吧jframe作为jdialog的父类
1个回答
展开全部
JFrame窗口,JDialog对话框, 两者都是顶层容器 , 但是java是单继承的 ,JDialog的父类是Dialog, 所以不能把JFrame作为JDialog的父类
通常,我们是把JFrame作为JDialog的父窗口. 比如点击JFrame上的按钮,弹出某个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("")) {// 验证是否输入了有效的字符串
// 字符串为"", 那么弹出对话框进行提示
JDialog jd = new JDialog(this, "JDialog 提示", true);
// 第一个参数 this 代表了本JFrame对象
// 第二个参数 标题
// 第三个参数 true表示模态窗口, 该窗口置顶,并且如果不关闭,无法点击其他的组件
JLabel jl = new JLabel("Sorry! 用户名必须填写,不能为空!");
jd.add(jl);
jd.setSize(230, 100);
jd.setLocationRelativeTo(null);
jd.setVisible(true);
jd.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
return;
}
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询