📄 appframe.java~2~
字号:
menubar = new JMenuBar(); //设置菜单栏
menu1 = new JMenu("File");
menu1.setMnemonic('F');
//menu2 = new JMenu("Connect");
//menu2.setMnemonic('C');
menu2 = new JMenu("Help");
menu2.setMnemonic('H');
newItem = new JMenuItem("New", 'N');
newItem.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK));
newItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
newItemButtonActionPerformed(evt);
}
});
save = new JMenuItem("Save", 'S');
save.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK));
save.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
saveButtonActionPerformed(evt);
}
});
load = new JMenuItem("Load", 'L');
load.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_L, InputEvent.CTRL_MASK));
load.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
loadButtonActionPerformed(evt);
}
});
export = new JMenuItem("Export", 'P');
export.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_P, InputEvent.CTRL_MASK));
export.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
exportButtonActionPerformed(evt);
}
});
exit = new JMenuItem("Exit", 'E');
exit.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_E, InputEvent.CTRL_MASK));
exit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
exitButtonActionPerformed(evt);
}
});
help = new JMenuItem("Help", 'H');
help.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_H, InputEvent.CTRL_MASK));
help.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
helpButtonActionPerformed(evt);
}
});
about = new JMenuItem("About", 'A');
about.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK));
about.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
aboutButtonActionPerformed(evt);
}
});
/*chat = new JMenuItem("Chat", 'C');
chat.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK));
chat.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
chatButtonActionPerformed(evt);
}
});
runClient = new JMenuItem("Synchronize",'N');
runClient.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK));
runClient.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
runClientButtonActionPerformed(evt);
}
});*/
menubar.add(menu1);
// menubar.add(menu2);
menubar.add(menu2);
menu1.add(newItem);
menu1.add(save);
menu1.add(load);
menu1.add(export);
menu1.addSeparator();
menu1.add(exit);
/* menu2.add(runClient);
menu2.addSeparator();
menu2.add(chat);*/
menu2.add(help);
menu2.add(about); //菜单栏初始化结束
this.getContentPane().add(menubar,"North");
this.getContentPane().add(ctrlPanel,"West");
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
board.setBorder(new EtchedBorder());
this.getContentPane().add(board, "Center");
this.setBounds((screenSize.width-886)/2, (screenSize.height-678)/2, 886, 678);
} //初始化函数结束
/**
* 按钮的监听函数
*
*/
private void lineButtonActionPerformed(ActionEvent evt) {
board.setTool(DrawingBoard.TOOL_LINE);
operateCombo.setEnabled(false);
numCombo.setEnabled(false);
}
private void rectButtonActionPerformed(ActionEvent evt) {
board.setTool(DrawingBoard.TOOL_RECT );
operateCombo.setEnabled(false);
numCombo.setEnabled(false);
}
private void roundRectButtonActionPerformed(ActionEvent evt) {
board.setTool(DrawingBoard.TOOL_ROUNDRECT);
operateCombo.setEnabled(false);
numCombo.setEnabled(false);
}
private void ovalButtonActionPerformed(ActionEvent evt) {
board.setTool(DrawingBoard.TOOL_OVAL);
operateCombo.setEnabled(false);
numCombo.setEnabled(false);
}
private void pencilButtonActionPerformed(ActionEvent evt) {
board.setTool(DrawingBoard.TOOL_PENCIL);
operateCombo.setEnabled(false);
numCombo.setEnabled(false);
}
private void polygonButtonActionPerformed(ActionEvent evt) {
board.setTool(DrawingBoard.TOOL_POLYGON);
operateCombo.setEnabled(false);
numCombo.setEnabled(false);
}
private void letterButtonActionPerformed(ActionEvent evt) {
board.setTool(DrawingBoard.TOOL_LETTER);
operateCombo.setEnabled(false);
numCombo.setEnabled(false);
}
private void clearButtonActionPerformed(ActionEvent evt) {
board.clearBoard();
operateCombo.setEnabled(false);
numCombo.setEnabled(false);
}
private void selectButtonActionPerformed(ActionEvent evt ){
board.setTool(DrawingBoard.TOOL_SELECT );
operateCombo.setEnabled(true);
numCombo.setEnabled(true);
if(board.getContent() == null) return;
numCombo.setModel(new DefaultComboBoxModel(board.getContent()));
board.setOperate(operateCombo.getSelectedIndex());
}
private void fgButtonActionPerformed(ActionEvent evt) {
Color color = JColorChooser.showDialog(this, "Change Drawing Color", board.getForeground());
if (color != null) {
board.setForeground(color);
fgButton.setBackground(color);
}
}
private void bgButtonActionPerformed(ActionEvent evt) {
Color color = JColorChooser.showDialog(this, "Change Board Background Color", board.getBackground());
if (color != null) {
board.setBackground(color);
bgButton.setBackground(color);
}
}
private void fmButtonActionPerformed(ActionEvent evt) {
Color fmcolor = JColorChooser.showDialog(this, "Change Frame Color", board.getFmColor());
if (fmcolor != null) {
board.setFmColor(fmcolor);
fmButton.setBackground(fmcolor);
}
}
private void weightComboActionPerformed(ActionEvent evt) {
board.setStrokeIndex(weightCombo.getSelectedIndex());
}
private void fontComboActionPerformed(ActionEvent evt) {
board.setFontIndex(fontCombo.getSelectedIndex());
}
private void styleComboActionPerformed(ActionEvent evt) {
board.setStyleIndex(styleCombo.getSelectedIndex());
}
private void sizeComboActionPerformed(ActionEvent evt) {
board.setSizeIndex(sizeCombo.getSelectedIndex());
}
private void imageComboActionPerformed(ActionEvent evt) {
board.setImageIndex(imageCombo.getSelectedIndex());
}
private void numComboActionPerformed(ActionEvent evt) {
board.setNumIndex(numCombo.getSelectedIndex());
}
private void operateComboActionPerformed(ActionEvent evt) {
board.setOperate(operateCombo.getSelectedIndex());
}
private void newItemButtonActionPerformed(ActionEvent evt) {
AppFrame frame = new AppFrame();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setVisible(true);
}
private void exitButtonActionPerformed(ActionEvent evt) {
System.exit(0);
}
private void runClientButtonActionPerformed(ActionEvent evt) {
ip = JOptionPane.showInputDialog(this,"Please input the ip:","Message",JOptionPane.PLAIN_MESSAGE);
if(ip == null) return;
else{
board.setConnect(ip);
}
}
private void helpButtonActionPerformed(ActionEvent evt) {
JOptionPane.showMessageDialog(this, "Sorry,There is no help infomation!");
}
private void aboutButtonActionPerformed(ActionEvent evt) {
JOptionPane.showMessageDialog(this, "PaintChat Version 1.0\n\n" + "Author: iloveKG");
}
private void chatButtonActionPerformed(ActionEvent evt) {
new draw.Chat().go();
}
private void saveButtonActionPerformed(ActionEvent evt) {
try {
if (filechooser == null) {
filechooser = new JFileChooser();
filechooser.setFileFilter(drawFilter);
filechooser.setMultiSelectionEnabled(false);
filechooser.setAcceptAllFileFilterUsed(false);
}
int retVal = filechooser.showSaveDialog(this);
if (retVal != JFileChooser.APPROVE_OPTION)
return;
File file = filechooser.getSelectedFile();
if (!file.getName().toLowerCase().endsWith(".superstar")) {
file = new File(file.getAbsolutePath() + ".superstar");
}
Color fgcolor = board.getForeground();
Color bgcolor = board.getBackground();
Color fmcolor = board.getFmColor();
PrintWriter pw = new PrintWriter(new FileWriter(file));
pw.println(fgcolor.getRGB()); //保存前景色
pw.println(bgcolor.getRGB()); //保存背景色
pw.println(fmcolor.getRGB()); //保存边框颜色
pw.println(weightCombo.getSelectedIndex()); //保存线条宽度
pw.println(fontCombo.getSelectedIndex()); //保存字体
pw.println(styleCombo.getSelectedIndex()); //保存字体类型
pw.print(sizeCombo.getSelectedIndex()); //保存字体大小
pw.print(board.getShapes()); //保存图像信息
pw.close();
} catch (IOException ioe) {
JOptionPane.showMessageDialog(this, ioe, "Error!", JOptionPane.ERROR_MESSAGE);
}
}
private void loadButtonActionPerformed(ActionEvent evt) {
try {
if (filechooser == null) {
filechooser = new JFileChooser();
filechooser.setFileFilter(drawFilter);
filechooser.setMultiSelectionEnabled(false);
filechooser.setAcceptAllFileFilterUsed(false);
}
int retVal = filechooser.showOpenDialog(this);
if (retVal != JFileChooser.APPROVE_OPTION)
return;
BufferedReader br = new BufferedReader(new FileReader(filechooser.getSelectedFile()));
int rgb = Integer.parseInt(br.readLine());
Color fgcolor = new Color(rgb);
board.setForeground(fgcolor);
fgButton.setBackground(fgcolor); //读取前景色
rgb = Integer.parseInt(br.readLine());
Color bgcolor = new Color(rgb);
board.setBackground(bgcolor);
bgButton.setBackground(bgcolor);
bgButton.setBackground(bgcolor); //读取背景色
rgb = Integer.parseInt(br.readLine());
Color fmcolor = new Color(rgb);
board.setFmColor(fmcolor); //读取边框色
weightCombo.setSelectedIndex(Integer.parseInt(br.readLine())); //读取线条宽度
fontCombo.setSelectedIndex(Integer.parseInt(br.readLine())); //读取字体
styleCombo.setSelectedIndex(Integer.parseInt(br.readLine())); //读取字体类型
sizeCombo.setSelectedIndex(Integer.parseInt(br.readLine())); //读取字体大小
ArrayList list = new ArrayList();
String str;
while ((str = br.readLine()) != null)
list.add(str);
board.setShapes(list); //读取图像信息
} catch (Exception e) {
JOptionPane.showMessageDialog(this, e, "Error!", JOptionPane.ERROR_MESSAGE);
}
}
private void exportButtonActionPerformed(ActionEvent evt) {
try {
if (filechooser2 == null) {
filechooser2 = new JFileChooser();
filechooser2.setFileFilter(pngFilter);
filechooser2.setMultiSelectionEnabled(false);
filechooser2.setAcceptAllFileFilterUsed(false);
}
int retVal = filechooser2.showSaveDialog(this);
if (retVal != JFileChooser.APPROVE_OPTION)
return;
File file = filechooser2.getSelectedFile();
if (!file.getName().toLowerCase().endsWith(".png")) {
file = new File(file.getAbsolutePath() + ".png");
}
Dimension d = board.getSize();
BufferedImage image = new BufferedImage(d.width, d.height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = image.createGraphics();
board.paint(g);
g.dispose();
ImageIO.write(image, "png", file);
} catch (Exception e) {
JOptionPane.showMessageDialog(this, e, "Error!", JOptionPane.ERROR_MESSAGE);
}
}
/**
* 主函数
* 启动画图板程序
*/
public static void main(String[] args) { //主函数
new AppFrame().setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -