lilyahh 2019-04-03 21:52 采纳率: 0%
浏览 880
已采纳

java弹出对话框JDialog为空白怎么处理

最近在做毕设,碰到图片所示的问题,请问有人知道如何解决吗?
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
public class NumberDialog extends JDialog implements ActionListener{
Container c;
JLabel l,l1;
JComboBox jcb;
JCheckBox jcb1,jcb2;
JButton SureButton,CancelButton;
String ColName;
public NumberDialog(String s){//

ColName=s;
c=this.getContentPane();
this.setLayout(null);//不采用任何布局方式
init7();
setTitle("数据类型选择");
this.setSize(420,330);
this.setLocation(480,170);
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.setVisible(true);
}
void init7() {
c.setBounds(0,0,420,330);
l=new JLabel("对于NUMBER类型的"+ColName+"变量,");
l.setBounds(50,15,400,30);
l.setFont(new Font("微软雅黑",Font.PLAIN,12));
c.add(l);

    l1=new JLabel("您选择的数据类型为:");
    l1.setBounds(50,40,400,30);
    l1.setFont(new Font("微软雅黑",Font.PLAIN,12));
    c.add(l1);

    jcb=new JComboBox();
    jcb.setOpaque(false);
    jcb.setFont(new Font("微软雅黑",Font.PLAIN,12));
    jcb.setBounds(50,75,250,25);
    jcb.addItem("INT");
    jcb.addItem("FLOAT");
    jcb.addItem("DOUBLE");
    c.add(jcb);

    jcb1=new JCheckBox("作为之后预校验的默认选择");
    jcb1.setFont(new Font("微软雅黑",Font.PLAIN,12));
    jcb1.setBounds(50,110,400,30);
    c.add(jcb1);

    jcb2=new JCheckBox("作为之后数据库迁移的默认选择");
    jcb2.setFont(new Font("微软雅黑",Font.PLAIN,12));
    jcb2.setBounds(50,140,400,30);
    c.add(jcb2);

    SureButton=new JButton("确定");
    SureButton.setBounds(200,230,70,35);
    SureButton.addActionListener(this);
    SureButton.setFont(new Font("微软雅黑",Font.PLAIN,12));
    SureButton.setBackground(Color.white);
    c.add(SureButton);

    CancelButton=new JButton("取消");
    CancelButton.setBounds(280,230,70,35);
    CancelButton.addActionListener(this);
    CancelButton.setFont(new Font("微软雅黑",Font.PLAIN,12));
    CancelButton.setBackground(Color.white);
    c.add(CancelButton);
}

public void actionPerformed(ActionEvent e) {
    if(e.getSource()==SureButton) { 
        dispose();
    }       
    if(e.getSource()==CancelButton) {
    }
}
}

图片说明

  • 写回答

2条回答 默认 最新

  • 毕小宝 博客专家认证 2019-04-04 08:58
    关注

    我测了你这个类,没问题,能够弹出来。
    测试代码如下:

    import java.awt.Color;
    import java.awt.Container;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.WindowConstants;
    
    /**
     * 1:按钮JButton
     * @author biexiansheng
     *
     */
    public class MyFrame extends JFrame {
    
        public void MyFrame(){
            JFrame jf=new JFrame();//实例化一个JFrame对象
            Container container=jf.getContentPane();//将窗体转化为容器
            //Container container=getContentPane();
            container.setLayout(null);
    
            JLabel jl=new JLabel("这是一个JFrame窗体");//在窗体中设置标签
            jl.setHorizontalAlignment(JLabel.CENTER);//将标签中的文字置于标签中间的位置
            container.add(jl);//将标签添加到容器中
    
            JButton jb=new JButton("点我");//实例化一个按钮属性
            jb.setBounds(20, 20,100, 50);
            jb.addActionListener(new ActionListener() {
    
                @Override
                public void actionPerformed(ActionEvent e) {
                    // TODO Auto-generated method stub
                    //使MyJDialog窗体可见
                    new NumberDialog("hello").setVisible(true);
                //上面一句话使对话框窗体可见,这样就实现了当用户单机该按钮后将弹出对话框的功能
                }
            });
            container.add(jb);//将按钮属性添加到容器中
    
            //设置容器里面的属性特点
            container.setBackground(Color.blue);
            //设置容器的框架结构特性
            jf.setTitle("这是一个容器");//设置容器的标题
            jf.setVisible(true);//设置容器可视化
            jf.setSize(450, 400);//设置容器的大小
            //设置容器的关闭方式
            jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        }
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            MyFrame fm=new MyFrame();
            fm.MyFrame();
        }
    
    }
    

    定义一个Frame包裹后,点击按钮弹出弹出框。
    图片说明

    检查下你的容器代码,是不是调用方式有问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 2月9日

悬赏问题

  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable