welcomescreen.java
来自「UCS (Ultra Corba Simulator) is one more 」· Java 代码 · 共 250 行
JAVA
250 行
package com.corba.mnq.ui;
import com.corba.mnq.main.CorbaMNQ;
import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Toolkit;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.UIManager;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.logging.Logger;
public class WelcomeScreen extends JFrame implements ActionListener {
static final long serialVersionUID = 3398575733515385040L;
private Toolkit toolkits = Toolkit.getDefaultToolkit();
private Window Windows;
private Image Images;
private URL file = null;
private static WelcomeScreen ins = null;
private JButton b_new;
private JButton b_open;
private JButton b_exit;
public boolean wait;
private WelcomeScreen() {
wait = true;
JLabel title = new JLabel();
title.setText(" -- Ultra Corba Simulator");
title.setForeground(Color.blue);
title.setHorizontalAlignment(SwingConstants.LEFT);
String icon = "/images/mnq.jpg";
Image image = Toolkit.getDefaultToolkit().getImage(ClassLoader.class.getResource(icon));
title.setIcon(new ImageIcon(image));
setIconImage(image);
setTitle("Ultra Corba Simulator");
JPanel center = new JPanel();
center.setLayout(new FlowLayout(FlowLayout.CENTER));
b_new = new JButton("New Project ...");
b_new.addActionListener(this);
b_new.setActionCommand("New Project ...");
b_open = new JButton("Open Project ...");
b_open.addActionListener(this);
b_open.setActionCommand("Open Project ...");
b_exit = new JButton("Exit");
b_exit.addActionListener(this);
b_exit.setActionCommand("Exit");
center.add(b_new);
center.add(b_open);
center.add(b_exit);
getContentPane().setLayout(new BorderLayout());
getContentPane().add("Center", center);
getContentPane().add("North", title);
}
// Listener for Action
public void actionPerformed(ActionEvent e) {
String action = e.getActionCommand();
if (action.equals("New Project ...")) {
String name = JOptionPane.showInputDialog(this, "Enter New Project Name:");
if (name == null)
return;
File file = new File(CorbaMNQ.ossDir + File.separator + "projects" + File.separator
+ name);
if (!file.mkdirs()) {
JOptionPane.showMessageDialog(this,
"Please check whehter the project name is correct!", "New Project ...", 2);
return;
}
file = new File(CorbaMNQ.ossDir + File.separator + "projects" + File.separator + name
+ File.separator + "corba.project");
try {
file.createNewFile();
} catch (IOException ex) {
JOptionPane.showMessageDialog(this, "Can't create the project file!",
"New Project ...", 2);
return;
}
file = new File(CorbaMNQ.ossDir + File.separator + "projects" + File.separator + name
+ File.separator + "etc");
file.mkdir();
file = new File(CorbaMNQ.ossDir + File.separator + "projects" + File.separator + name
+ File.separator + "idl");
file.mkdir();
file = new File(CorbaMNQ.ossDir + File.separator + "projects" + File.separator + name
+ File.separator + "log");
file.mkdir();
file = new File(CorbaMNQ.ossDir + File.separator + "projects" + File.separator + name
+ File.separator + "scripts");
file.mkdir();
file = new File(CorbaMNQ.ossDir + File.separator + "projects" + File.separator + name
+ File.separator + "dsi");
file.mkdir();
file = new File(CorbaMNQ.ossDir + File.separator + "projects" + File.separator + name
+ File.separator + "dsi" + File.separator + "src");
file.mkdir();
CorbaMNQ.projectDir = CorbaMNQ.ossDir + File.separator + "projects" + File.separator
+ name;
CorbaMNQ.initProjectName = name;
} else if (action.equals("Open Project ...")) {
File dir = new File(CorbaMNQ.ossDir + File.separator + "projects");
JFileChooser dlg = new JFileChooser(dir);
dlg.setDialogTitle("Open Project ...");
if (dlg.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
File file = dlg.getSelectedFile();
if (!file.getName().equals("corba.project")) {
JOptionPane.showMessageDialog(this,
"You haven't selected the correct project file \"corba.project\" !",
"Open Project ...", 2);
return;
}
File pdir = file.getParentFile();
String name = pdir.getName();
CorbaMNQ.projectDir = CorbaMNQ.ossDir + File.separator + "projects"
+ File.separator + name;
CorbaMNQ.initProjectName = name;
} else {
return;
}
} else if (action.equals("Exit")) {
System.exit(0);
} else {
return;
}
wait = false;
}
public static WelcomeScreen instance() {
if (ins == null)
ins = new WelcomeScreen();
return ins;
}
public void setFile(URL file) {
this.file = file;
}
public void dispaly() {
try {
if (File.separator.equalsIgnoreCase("\\")) {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} else {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
}
} catch (Exception e) {
LOG.severe("Couldn't use system look and feel.");
}
// Make sure we have nice uix decorations.
JFrame.setDefaultLookAndFeelDecorated(true);
// remove decorated parts of component
setUndecorated(true);
// Display the window.
pack();
// // The next two lines should be in one line.
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
int w = getSize().width;
int h = getSize().height;
int x = (dim.width - w) / 2;
int y = (dim.height - h) / 2;
setBounds(x, y, w, h);
setVisible(true);
}
public void exit() {
dispose();
}
/** used for java.util.logging */
private static final Logger LOG = Logger.getLogger(WelcomeScreen.class.getName());
}
class ImageCanvas extends Canvas {
private Image Images;
public ImageCanvas(Image Images) {
MediaTracker mt = new MediaTracker(this);
mt.addImage(Images, 0);
try {
mt.waitForID(0);
} catch (Exception e) {
e.printStackTrace();
}
this.Images = Images;
}
public void paint(Graphics g) {
g.drawImage(Images, 0, 0, this);
}
public void update(Graphics g) {
paint(g);
}
public Dimension getPreferredSize() {
return new Dimension(Images.getWidth(this), Images.getHeight(this));
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?