繁体   English   中英

使用JPanel的JOptionPane

[英]JOptionPane using JPanel

我试图将JPanelJOptionPanel结合使用,以便可以修改警报窗口的大小。 我写的代码是这样的:

JPanel panel = new JPanel();
//panel.setBackground(Color.RED);
panel.setPreferredSize(new Dimension(500,500));

// display the jpanel in a joptionpane dialog, using showMessageDialog
JFrame frame = new JFrame("JOptionPane showMessageDialog component example");

while (AlarmRS.next()) {
    System.out.println(AlarmRS.getString("Description"));
    //JOptionPane.showInternalMessageDialog(null, getPanel(), AlarmRS.getString("Description"), JOptionPane.INFORMATION_MESSAGE);
    JOptionPane.showMessageDialog(frame,panel, AlarmRS.getString("Description"), JOptionPane.WARNING_MESSAGE);
}

但是,当我运行该程序时,说明应该在中间,但进入标题栏。 如何使这项工作有效,使描述成为警报窗口的主要文字?

showMessageDialogJavaDocs清楚地指出,第三个参数是对话框title“对话框的标题字符串”

而是创建一个JLabel其文本设置为要显示的内容,然后将其添加到panel

JPanel panel = new JPanel(new GridBagLayout());
//panel.setBackground(Color.RED);
panel.setPreferredSize(new Dimension(500, 500));

while (AlarmRS.next()) {
    System.out.println(AlarmRS.getString("Description"));
    panel.add(new JLabel(AlarmRS.getString("Description")));
    //JOptionPane.showInternalMessageDialog(null, getPanel(), AlarmRS.getString("Description"), JOptionPane.INFORMATION_MESSAGE);
    JOptionPane.showMessageDialog(frame, panel, "This is a title", JOptionPane.WARNING_MESSAGE);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM