xinjianleibiedialog.java

来自「一款JAVA开发的类迅雷的多线程下载系统,希望对大家有帮助」· Java 代码 · 共 126 行

JAVA
126
字号
package downfile;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
public class XinJianLeiBieDialog extends JDialog implements KeyListener,ActionListener{
	
	JButton okbutton = new JButton("确定");
	JButton cancelbutton = new JButton("取消");
	JButton liulanbutton = new JButton("浏览");
	
    JLabel label1 = new JLabel("类别名称:");
    JLabel label2 = new JLabel("默认路径:");
    
    JTextField jtf1 = new JTextField();
    JTextField jtf2 = new JTextField();
    
    JFileChooser chooser = new JFileChooser();
    
    DefaultTreeModel m_treeModel;
    TreeModel m_treemodel;
    String Path;
	XinJianLeiBieDialog(JFrame parent,String title,
			DefaultTreeModel treeModel,TreeModel treemodel){
		 super(parent,title,true);
 	     JPanel panel = new JPanel();
 	     setSize(400,200);
 	     panel.setLayout(null);
 	     jtf2.setEditable(false);
 	     label1.setBounds(new Rectangle(10,20,100,25));
 	     panel.add(label1);
 	     jtf1.setBounds(new Rectangle(120,20,120,25));
 	     panel.add(jtf1);
 	     label2.setBounds(new Rectangle(10,60,100,25));
 	     panel.add(label2);
 	     jtf2.setBounds(new Rectangle(120,60,120,25));
 	     panel.add(jtf2);
 	     liulanbutton.setBounds(new Rectangle(240,60,60,25));
 	     panel.add(liulanbutton);
 	     
 	     okbutton.setBounds(new Rectangle(100,100,60,25));
 	     panel.add(okbutton);
 	     cancelbutton.setBounds(new Rectangle(200,100,60,25));
 	     panel.add(cancelbutton);
 	     setContentPane(panel);	 
 	     
 	     m_treemodel = treemodel;
		 m_treeModel = treeModel;
		 
 	     okbutton.addActionListener(new ActionListener(){
 	    	public void actionPerformed(ActionEvent e){
 	    		creatNewNode(m_treeModel);
 	    		 m_treemodel.lujing = Path;
 	    	}
 	     });
 	     cancelbutton.addActionListener(new ActionListener(){
 	    	public void actionPerformed(ActionEvent e){
 	    		dispose();
 	    	}
 	     });
 	     liulanbutton.addActionListener(this);
 	     jtf1.addKeyListener(this);
 	     jtf2.setText("D:\\");
	 }
	
	public void actionPerformed(ActionEvent e){
		int r = 0;
		chooser.setDialogTitle("选择文件夹");
		chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY );
		chooser.showDialog(this,"选择");
		if (r == JFileChooser.APPROVE_OPTION) { 
			 if(chooser.getSelectedFile()!=null){
			  Path = chooser.getSelectedFile().getAbsolutePath(); 
                 jtf2.setText(Path);
			  }else{
				  Path = m_treemodel.lujing;
			  }
		}
	}
	
	public void creatNewNode(DefaultTreeModel treeModel){
		String nodename = jtf1.getText();
		if(nodename.equals("")){
			JOptionPane.showMessageDialog(null,"请输入类别名称!!");
		}else{
			 if(MainFrame.isSameName(nodename)){
				 JOptionPane.showMessageDialog(null,"此类已经存在,请重新输入!!");
			 }else{
				 TreeModel parentNode = MainFrame.node2;
			if(Path == null)
				Path = jtf2.getText();
			TreeModel newNode = new TreeModel(nodename,false,Path);
			MainFrame.leadNodeList.add(newNode);
		    treeModel.insertNodeInto(
		    newNode,parentNode,parentNode.getChildCount());
		    MainFrame.tree.scrollPathToVisible(new TreePath(newNode.getPath()));
		    this.dispose();
		}
	 }
	}
	public void keyTyped(KeyEvent arg0) {
		
	}
	public void keyPressed(KeyEvent arg0) {
		if(arg0.getKeyChar() == KeyEvent.VK_ENTER){
			creatNewNode(m_treeModel);
		}
	}
	public void keyReleased(KeyEvent arg0) {
		
		
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?