我有两节课。 1.One class包含Netbeans GUI builder生成的所有GUI代码(称之为GUI类) 2.另一个类包含一些包含方法的代码(SaveTraffic,它扩展了SwingWorker)。
在我的SaveTraffic中,我创建了一个框架,当我运行我的应用程序时,该框架会弹出并进入我的GUI前面。我想将此框架添加到我想要放置它的特定位置的GUI。这怎么可能?这是我的SaveTraffic代码
public class SaveTraffic extends SwingWorker<Void, String> {
public static int k = 0;
public GUI f = new GUI();
public static Frame u = new Frame();
public static JTextArea h = new JTextArea();
JScrollPane scrollPane2 = new JScrollPane(h, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
@Override
public Void doInBackground() throws IOException {
u.setSize(950, 200);
u.setLocation(0,550);
u.add(scrollPane2);
u.setVisible(true);
while (f.num() != 2) {
{
publish("Hello World");
}
}
return null;
} //end main function
@Override
public void process(List<String> chunks) {
for (final String text : chunks) {
Runnable r = new Runnable() {
@Override
public void run() {
h.setLineWrap(true);
h.append(text + "\n");
}
};
new Thread(r).start();
}
}
@Override
public void done() {
System.out.println("I am DONE");
}
}
答案 0 :(得分:2)
我在您的代码中看到了几个问题:
setModal()
来选择对话框是否是模态的。(可选)我还会考虑在SaveTraffic中添加一个构造函数并初始化那里的大部分代码。
答案 1 :(得分:2)
未在Swing Gui
方法中构建SwingWorker's
,SwingWorker
被指定为已存在的add / modify / change
中的JComponent(s)
将process()
或publish()
添加到SwingWorker
,在此方法内放置值或定期附加文本JTextArea
“监控”SwingWorker's
状态添加PropertyChangeListener
答案 2 :(得分:0)
你创建了一个扩展JPanel的类。然后在那里执行所有代码,并将其与方法类绑定。