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 + -
显示快捷键?