M*P 发帖数: 6456 | 1 问题有点复杂,我做一个SWING的界面,要popup一个JDialog。我发现press ESCAPE键
,那个JDialog就关闭了。但是我需要这个 JDialog 必须接受一些输入再关闭。
但是我网上查发现很多help都是说怎么给JDialog加上ESCAPE响应,由此推断JDialog本
身不会对Escape响应。但是我的程序就是在响应。
这种情况下我怎么知道哪段code在起作用?如何关掉JDialog对ESCAPE的响应?
多谢。 |
|
s*****e 发帖数: 16824 | 2 这个问题是因为你企图save JDialog, JDialog本身serializable,但是你在JDialog
里面用了GroupLayout, 这个东西不能serialize。所以凡是GUI的东西最好不要直接
save,里面结构太复杂,说不定什么东西就不work.save数据,然后GUI启动以后load数
据再填进GUI里面。
objectOutputStream
writing
load |
|
f***a 发帖数: 7 | 3 //the pop-up windows should better be Dialog or JDialog
// suppose your owner is a subclass of JFrame
class YourPopUp extends JDialog
{
private JFrame parent;
//or private OwnerClass parent
public YourPopUp(JFrame parent)
{
super(parent,"your title", true);
this.parent = parent;
}
// do anything on the parent
// might need casting somewhere
} |
|
z****g 发帖数: 2497 | 4 想做这样一个控件, 就是类似JDialog, 右上角有个[x] close button,
并且可以加到JPanel里面。
现在JDialog加不到JPanel里。
多谢了。 google半天也没找到。
Some google results: it seems I could use JINternalFrame
I thought JInternalFrame can only be added to JDesktopPane. |
|
s**c 发帖数: 3 | 5 In a program, I have several JDialog being displayed at the same time. Is
there an actionListener I can use so that the JDialog that is currently
highlighted(getting focus) knows it is the one being looked at? |
|
d*****l 发帖数: 8441 | 6
好像解决了,不过没有显式地用另外的线程,用的定时器和Model对话框:
final JDialog dialog = new JDialog(this, "Auto-Close Dialog");
Timer timer = new Timer(50, new ActionListener() {
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
dialog.dispose();
}
});
timer.setRepeats(false);
timer.start();
dialog.add(new JLabel("Generating Documents ..."));
dialog.setVisible(true); // modal dialog: applicat... 阅读全帖 |
|
f*****0 发帖数: 166 | 7 新手在学习编程中。。。
现在在学习开发一个实用程序,用得是netbeans ide。
一开始直接使用了subclass of JFrame作为主界面, 以subclass (of JDialog) 作为
次界面来获得用户使用时的输入的状态信息。程序运行时,make a new instance of
the "subclass(of JDialog)", 获得用户输入的状态信息,然后用objectOutputStream
来save保存了这个instance。 再load这个object。
实践中,在load时获得了如下Exception: java.io.WriteAbortedException: writing
aborted; java.io.NotSerializableException: javax.swing.GroupLayout
请教了Google大师,得到的结论是,我不应该储存serialize GUI(包括他们的子类)
,而是应该用Java Preferences 或 Java properties来记录储存状态信息。然后load
使用时,再赋值到GUI 界面中... 阅读全帖 |
|
f*****0 发帖数: 166 | 8 感谢指点。 这个确实是我Google到的最初的解释。
我现想确认的是如你所说的是不是一个比较普适的模式:
两个模块物:
(Object 1) gui(包含可serializable 的layout)。
(Object 2) 数据。
save时保存两个objects,load时再load两个objects. (相对于我一开始的直接把数据逻
辑放到JDialog的做法)
还有一个问题,关于layout,如果要能够serialize,又比较好用,类似于客户信息表
栏比较多,相对分散,什么layout比较好?我看到了GridBagLayout.不知道对否?
JDialog |
|
c*****t 发帖数: 1879 | 9 For some reason, when I opened a JDialog inside an ActionListener (called
from a menu item), thecomponents inside the dialog didn't get painted until
ActionListener existed. I had JProgressBar inside, that's why it was
important to have it displayed. I overrode the paint function and see
if it ever get call. None.
Any fixes to this problem?
Thanks, |
|
n*****k 发帖数: 123 | 10
It seems to me, that you want to access the JProgressBar from the code outside
of the AWT event thread, if that is the case, you may have to use SwingWorker,
SwingUtililies.invokeLater(), or Open JDialog from a non_AWT Event thread. |
|
R*******r 发帖数: 104 | 11 写了半天的程序,就是游戏里显示一个纯图片的dialog,没有decoration的那种,
在local跑得好好的,扔浏览器一看,出来一个java applet window的白色底边,
平时用javaa look and feel是不觉得啥的,可是这种纯贴图游戏是不行的,
想起来这是applet security waring, 去不掉,上signed applet是不能接受的。
只好去掉jdialog,直接把panel加到applet里,这下没有modal了,想来想去,
只好把所有能交互的jcomponent都注册到一个vector里,起对话框的时候
disable, 回来的时候恢复。都干完了,发现背景上的animation会冲掉
前景这个虚假的dialog,只好把这个dialog和背景扔到applet
JLayeredPane的两层里,总算搞定。
现在唯一不像的就是起dialog的时候所有JComponent都会被disabled,
不过不算是大问题。
各位大虾要是知道更高明的方法,吱一声。 |
|
b***i 发帖数: 3043 | 12 开始applet后,想显示一个小窗口,输入密码,按ok
然后,程序检查密码,如果正确,再显示主窗口,继续进行。否则,关闭。
怎么做呢?看了JDialog,好像很麻烦, |
|
f*****0 发帖数: 166 | 13 可能我一开始没有把问题说清楚,
关于这个比赛管理程序,纯属个人学习练习。
关于一个比赛的参加人员,分为比赛组织者(分工不同,有不同的头衔),比赛的裁判
(几种),比赛的参加者,而程序的使用者需要输入每个人都有相关的部分或全部的信
息。
这个时候,在构建组织者,裁判,和参加者的时候,我选用了builder模式。
我一开始的问题是,那在构建不同的UI让用户输入不同类人的相关信息的时候,如何构
建这好几个UI (说好几个,是因为有相同的和不同的数据)?我自己一开始拓展使用
了Jdialog。然后再拓展出相应的组织者,裁判,和参加者的对话框。
好虫推荐了builder模式。我觉得这个是个非常好的主意。
我再去学习了一下你说的模板和复合模式,觉得好像不甚适用。请指点。 |
|