⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 projectdialog.java

📁 这个小软件( RealEditor )是同学一起编写的
💻 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 + -