我有一个简短的代码,我想处理一个对话框,但不希望用户能够关闭它,它只是不起作用,请帮助我。
import javax.swing.*;
public class Processing extends JOptionPane{
JDialog jd;
public Processing(){
super(null, JOptionPane.DEFAULT_OPTION,
JOptionPane.INFORMATION_MESSAGE, null, new Object[]{});
Icon processPic = new ImageIcon("C:\\Users\\Judit\\Desktop\\Mesekocka3D"
+ "\\externals\\pics\\szamitas.gif");
setMessage(processPic);
jd = createDialog("Számítás");
jd.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
jd.setVisible(true);
jd.dispose();
}
}
这就是我的代码现在的样子,我使用Jdialog而不是Joptionpane,我应该写更多字符让网站接受我的编辑吗?
import javax.swing.*;
public class Mifasz
{
private static class Processing extends JDialog{
public Processing(){
Icon processPic = new ImageIcon("C:\\Users\\Judit\\Desktop\\Mesekocka3D"
+ "\\externals\\pics\\szamitas.gif");
JLabel label = new JLabel(processPic);
add(label);
setTitle("Számítás");
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
setSize(400, 70);
setLocation(330, 300);
setModal(true);
setVisible(true);
dispose();
}
}
public static void main(String[] args)
{
Processing pc = new Processing();
}
}
答案 0 :(得分:2)
我想在短时间内为用户显示一个gif,它就像一个装载屏幕,我不希望他对应用程序做任何事情,所以我使用joptionpane,但我也想禁用X按钮,所以我使用jdialog,因为我没有找到禁用optionpane的X按钮的选项。
1)您可以使用未装饰的JDialog#setUndecorated(true);
3)使用Swing Timer进行计时,来自Swing Timer的输出可以是Swing Action,而actionPerformed
放置JDialog#setVisible(fasle);
修改
我想阻止它,并且需要在用户点击JCombobox项目时多次使用
1)只创建一次JDialog,你只重用那个
2)在actionPerformed
put JDialog#setVisible(fasle);
3)来自Item
JComboBox
Icon
(JLabel
)更改myLabel#setIcon(myAnotherGIF)
的事件
4)在invokeLater
内JDialog#setVisible(true);
5)不需要任何其他步骤
仅在特殊情况下
6)你必须致电
myIcon.getImage().flush();
myLabel.setIcon(myIcon);
如果Icon's
JLabel
重新绘图有问题
答案 1 :(得分:1)
您需要致电
jd.setVisible(false);
然后
jd.dispose();
答案 2 :(得分:0)
您想要做的是启动画面,请参阅this。
答案 3 :(得分:0)
好的,所以我找到了一个非常简单的解决方案: 我只是在处理时禁用主机。 How to make a JFrame Modal in Swing java