📄 projectdialog.java
字号:
package com.ecust.swing;
import javax.swing.*;
import java.awt.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.io.File;
import javax.swing.filechooser.*;
public class ProjectDialog extends JDialog {
/**
*
*/
private static final long serialVersionUID = -3472756121335487782L;
private JLabel textLabel;
private JTextField textField;
private ButtonGroup buttonGroup;
private JRadioButton defaultRadioButton;
private JRadioButton setPathRadioButton;
private JLabel directoryLabel;
private JTextField directoryField;
private JButton browseButton;
private JButton okButton;
private JButton cancelButton;
private String projectName;
private File directory = this.getHomeDirectory();
BrowseDialog browseDialog;
public ProjectDialog(JFrame frame, String title, boolean modal) {
super(frame, title, modal);
/*
Point point = frame.getLocation();
setLocation(
point.x + ( frame.getWidth() - this.getWidth() ) / 2,
point.y + ( frame.getHeight() - this.getHeight() ) / 2 );
*/
setLayout(new BorderLayout());
JPanel textPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
JPanel radioButtonPanel = new JPanel(new GridLayout(3, 1));
JPanel okCancelPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
textLabel = new JLabel("Project Name: ");
textField = new JTextField(28);
textField.setEditable(true);
textPanel.add(textLabel);
textPanel.add(textField);
add(textPanel);
buttonGroup = new ButtonGroup();
defaultRadioButton = new JRadioButton("Creat new project with defalut path", true); //默认选项
setPathRadioButton = new JRadioButton("Creat new project set path");
buttonGroup.add(defaultRadioButton);
buttonGroup.add(setPathRadioButton);
JPanel directoryPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
directoryLabel = new JLabel("Directory: ");
directoryField = new JTextField(27);
directoryField.setText(directory.getAbsolutePath());
if(defaultRadioButton.isSelected()) { //默认, 不能edit
directoryField.setEditable(false);
}
browseButton = new JButton("Browse...");
browseButton.setEnabled(false);
directoryPanel.add(directoryLabel);
directoryPanel.add(directoryField);
directoryPanel.add(browseButton);
radioButtonPanel.add(defaultRadioButton);
radioButtonPanel.add(setPathRadioButton);
radioButtonPanel.add(directoryPanel);
Border etched = BorderFactory.createEtchedBorder();
Border titled = BorderFactory.createTitledBorder(etched, "Set Path");
radioButtonPanel.setBorder(titled);
okButton = new JButton("OK");
cancelButton = new JButton("Cancel");
okCancelPanel.add(okButton);
okCancelPanel.add(cancelButton);
add(textPanel, BorderLayout.NORTH);
add(radioButtonPanel, BorderLayout.CENTER);
add(okCancelPanel, BorderLayout.SOUTH);
okButton.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event) {
//projectName
String name = textField.getText();
int count = 0; //计算空格数
for(count = 0; count < name.length() && name.charAt(count) == ' '; count++);
name = name.substring(count);
//directory
String dir = directoryField.getText();
for(count = 0; count < dir.length() && dir.charAt(count) == ' '; count++);
dir = dir.substring(count);
if(name.length()== 0 && dir.length()== 0) {
JOptionPane.showMessageDialog(null, "Please Input Project Name & File Directory\n"+
"In Front Can't be \" \"");
} else if(name.length()== 0) {
JOptionPane.showMessageDialog(null, "Please Input Project Name\n"+
"In Front Can't be \" \"");
//projectName = null;
} else if(dir.length()== 0) {
JOptionPane.showMessageDialog(null, "Please Input File Directory\n"+
"In Front Can't be \" \"");
//projectName = null;
} else {
projectName = name;
directory = new File(dir);
dispose();
}
directory = new File(directoryField.getText());
///
File newFile = new File(directory.getAbsolutePath());
JFileChooser fc = new JFileChooser();
if (name != null) {
//File newDir = fc.getFileSystemView().
File newDir = fc.getFileSystemView().createFileObject(newFile, projectName);
if (newDir == null || !newDir.mkdir()) {
JOptionPane.showMessageDialog(null, "Can't Creat new Project! ", "error", JOptionPane.ERROR_MESSAGE);
}
fc.rescanCurrentDirectory();
}
////
}
});
browseButton.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event) {
if(!defaultRadioButton.isSelected()) {
browseDialog = new BrowseDialog(ProjectDialog.this, "Browse For Folder", true);
if(browseDialog.getDirectory() != null)
directoryField.setText(browseDialog.getDirectory().getAbsolutePath());
}
}
});
cancelButton.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event) {
dispose();
}
});
defaultRadioButton.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event) {
directoryField.setEditable(false);
browseButton.setEnabled(false);
}
});
setPathRadioButton.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event) {
directoryField.setEditable(true);
browseButton.setEnabled(true);
}
});
setSize(500, 240);
setVisible(true);
}
public File getHomeDirectory() {
JFileChooser fc = new JFileChooser();
FileSystemView fsv = fc.getFileSystemView();
File homeDir = fsv.getHomeDirectory();
return homeDir;
}
public String getProjectName() {
return projectName;
}
public File getFileDir() {
return directory;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -