小编bio*_*ind的帖子

JOptionPane - 检查用户输入并防止关闭,直到满足条件

JOptionPane除非满足用户输入字段的条件,否则有人可以告诉我是否有一种方便的方法可以防止在单击"确定"时关闭?

或者我别无选择只能使用JFrame

到目前为止我的验证逻辑.似乎不起作用,因为按钮是由于某种原因一次性可点击...

final JDialog dialog3 = new JDialog(OmniGUI.getFrame(), "Create new Node - id:" + newNodeID);
dialog3.setContentPane(theOPane);
dialog3.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);

theOPane.addPropertyChangeListener(new PropertyChangeListener(){
   public void propertyChange(PropertyChangeEvent e) {

       if(e.getSource() == theOPane){
           String val = (String) ((JOptionPane) e.getSource()).getValue();

           if(val=="Create"){
               System.out.println("Checking content");                      

               if(!valid){
                   System.out.println("closing the window");    

                   dialog3.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
                   dialog3.removeAll();
                   dialog3.dispatchEvent(new WindowEvent(dialog3, WindowEvent.WINDOW_CLOSING));
               }

           }
       }
   }    
});

    dialog3.setLocation(p);
    dialog3.pack();
    dialog3.setVisible(true);
Run Code Online (Sandbox Code Playgroud)

java swing joptionpane

8
推荐指数
1
解决办法
3万
查看次数

JDialog - 刷新JTree中动态添加的节点

我在JDialog中使用的JTree节点可见性存在问题.当我想向模型添加新节点时,Jtree不会刷新.

奇怪的是节点正在更新,就像我设置setRootVisible(true)一样.

这是代码.提前致谢

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;

public class TestClass {

JTree tree;
DefaultTreeModel dm;
JDialog dialog;

public TestClass(){
    JFrame frame = new JFrame("title");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);

    JPanel showPane = new JPanel();
    showPane.setLayout(new BorderLayout()); 

    dm = new DefaultTreeModel(new DefaultMutableTreeNode("root"));
    tree = new JTree(dm);
    tree.setRootVisible(false);

    JButton button = new JButton("add node");
    button.addActionListener(new ActionListener(){

        public void actionPerformed(ActionEvent arg0) {
            DefaultMutableTreeNode root …
Run Code Online (Sandbox Code Playgroud)

java swing jtree jdialog treemodel

5
推荐指数
1
解决办法
6421
查看次数

JTree禁用/覆盖TransferHandler键盘操作

我需要摆脱我用于JTree的TransferHandler类的标准键盘动作处理程序.JTree实现了访问级机制,该机制控制是否可以删除节点.使用shift-delete等键盘组合可以忽略此行为,从而允许每个用户从JTree中删除任何节点.

基本上我需要TransferHandler来提供移动和排序节点(DnD)的便捷方式.而已.

提前致谢.

java swing key-events drag-and-drop jtree

1
推荐指数
1
解决办法
941
查看次数