在程序中使用多個showInputDialogs。 當這些輸入中的一個彈出時,它會凍結背景中的所有其他窗口,直到它接收到輸入,是否有辦法使其不凍結其他窗口?showInputDialog凍結其他窗口
0
A
回答
3
如果通過「凍結」您的意思是用戶無法訪問其他窗口,那麼關鍵是使新對話框成爲非模態對話框。您可以從JOptionPane中提取JDialog,然後選擇以非模式方式顯示它。 JOptionPane API將告訴你如何。搜索「直接使用」部分:
編輯:安德魯州也是! 1+
與代碼玩....
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import javax.swing.*;
public class Foo {
public static void main(String[] args) {
final JTextField textfield = new JTextField(10);
textfield.setFocusable(false);
final JPanel panel = new JPanel();
panel.add(textfield);
panel.add(new JButton(new AbstractAction("Push Me") {
private JOptionPane optionPane;
private JDialog dialog;
private JTextField optionTextField = new JTextField(10);
@Override
public void actionPerformed(ActionEvent arg0) {
if (dialog == null) {
JPanel optionPanel = new JPanel(new BorderLayout());
optionPanel.add(new JLabel("Enter some stuff"),
BorderLayout.PAGE_START);
optionPanel.add(optionTextField, BorderLayout.CENTER);
optionPane = new JOptionPane(optionPanel,
JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
dialog = optionPane.createDialog(panel, "Get More Info");
dialog.setModal(false);
dialog.addComponentListener(new ComponentAdapter() {
@Override
public void componentHidden(ComponentEvent arg0) {
Integer value = (Integer) optionPane.getValue();
if (value == null) {
return;
}
if (value == JOptionPane.OK_OPTION) {
textfield.setText(optionTextField.getText());
}
}
});
}
dialog.setVisible(true);
}
}));
JFrame frame = new JFrame("Frame");
frame.add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
3
使用非模態JDialog
代替。詳情請參閱How to Use Modality in Dialogs。
相關問題
- 1. wpf - 窗口凍結
- 2. ctrl - ]凍結窗口?
- 3. SoapUI窗口凍結
- 4. socket.connect()凍結窗口
- 5. CFRunLoopRunInMode凍結主窗口
- 6. OpenCV窗口正在凍結
- 7. 窗口正在凍結
- 8. 登錄窗口凍結
- 9. matplotlib平局()凍結窗口
- 10. 結果頁面在其他窗口
- 11. 當其他窗口處於活動狀態時,我的java程序會凍結
- 12. 顯示模態對話框(MessageBox中)凍結其他窗口在應用
- 13. 在其他窗口之上的窗口
- 14. 從其他窗口(Qt)釋放窗口?
- 15. 線程循環凍結遊戲窗口
- 16. WPF的「凍結」內容窗口bug
- 17. VSTO/Word:如何凍結文檔窗口?
- 18. 創建「凍結窗口」效果
- 19. 定時器凍結我的WPF窗口
- 20. 使用SetParent凍結父窗口
- 21. TortoiseSVN提交窗口凍結(Windows 10)
- 22. Pygame窗口凍結時代碼運行
- 23. 的Tkinter窗口凍結從腳本
- 24. Tkinter名稱錯誤:窗口凍結
- 25. New-VirtualEnvironment命令凍結了PowerShell窗口
- 26. C++ - 窗口消息循環凍結
- 27. 窗口pygame的凍結,同時等待
- 28. delphi凍結窗口上的屏幕
- 29. C#線程調用凍結窗口
- 30. 從子窗口添加一些項目後凍結主窗口
*「搜索部分標題爲」直接使用:「」哦,我沒有想到這一點。 +1它*很難重新創建'JOptionPane'的功能.. –
我檢查了它,但我沒有看到它如何與inputdialogs一起工作?我輸入tablename = JOptionPane.showInputDialog(「輸入表名*(使用大寫字母)」)的樣式inputdialogs; – Looptech