appframe.java
来自「JGraph扩展应用。自定义Renderer,自定义视图View实现自定义工作流」· Java 代码 · 共 504 行 · 第 1/2 页
JAVA
504 行
mediumPanel4.setLayout(new java.awt.BorderLayout(0, 3)); loadButton.setFont(new java.awt.Font("Dialog", 0, 10)); loadButton.setText("Load from jdraw model"); loadButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { loadButtonActionPerformed(evt); } }); mediumPanel4.add(loadButton, java.awt.BorderLayout.CENTER); saveButton.setFont(new java.awt.Font("Dialog", 0, 10)); saveButton.setText("Save to jdraw model"); saveButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { saveButtonActionPerformed(evt); } }); mediumPanel4.add(saveButton, java.awt.BorderLayout.NORTH); exportButton.setFont(new java.awt.Font("Dialog", 0, 10)); exportButton.setText("Export to PNG image"); exportButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { exportButtonActionPerformed(evt); } }); mediumPanel4.add(exportButton, java.awt.BorderLayout.SOUTH); savePanel.add(mediumPanel4); mediumPanel1.add(savePanel); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(10, 5, 5, 5); ctrlPanel.add(mediumPanel1, gridBagConstraints); copyleft.setFont(new java.awt.Font("Verdana", 0, 10)); copyleft.setForeground(new java.awt.Color(255, 153, 0)); copyleft.setText("CopyLeft 2005 hysun"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 15, 5); ctrlPanel.add(copyleft, gridBagConstraints); getContentPane().add(ctrlPanel, java.awt.BorderLayout.WEST); getContentPane().add(board, java.awt.BorderLayout.CENTER); java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); setBounds((screenSize.width-786)/2, (screenSize.height-578)/2, 786, 578); }//GEN-END:initComponents private void exportButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exportButtonActionPerformed 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); } }//GEN-LAST:event_exportButtonActionPerformed private void loadButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_loadButtonActionPerformed try { if (filechooser1 == null) { filechooser1 = new JFileChooser(); filechooser1.setFileFilter(jdrawFilter); filechooser1.setMultiSelectionEnabled(false); filechooser1.setAcceptAllFileFilterUsed(false); } int retVal = filechooser1.showOpenDialog(this); if (retVal != JFileChooser.APPROVE_OPTION) return; BufferedReader br = new BufferedReader(new FileReader(filechooser1.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); weightCombo.setSelectedIndex(Integer.parseInt(br.readLine())); eraserCombo.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); } }//GEN-LAST:event_loadButtonActionPerformed private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed try { if (filechooser1 == null) { filechooser1 = new JFileChooser(); filechooser1.setFileFilter(jdrawFilter); filechooser1.setMultiSelectionEnabled(false); filechooser1.setAcceptAllFileFilterUsed(false); } int retVal = filechooser1.showSaveDialog(this); if (retVal != JFileChooser.APPROVE_OPTION) return; File file = filechooser1.getSelectedFile(); if (!file.getName().toLowerCase().endsWith(".jdw")) { file = new File(file.getAbsolutePath() + ".jdw"); } Color fgcolor = board.getForeground(); Color bgcolor = board.getBackground(); PrintWriter pw = new PrintWriter(new FileWriter(file)); pw.println(fgcolor.getRGB()); pw.println(bgcolor.getRGB()); pw.println(weightCombo.getSelectedIndex()); pw.print(eraserCombo.getSelectedIndex()); pw.print(board.getShapes()); pw.close(); } catch (java.io.IOException ioe) { JOptionPane.showMessageDialog(this, ioe, "Error!", JOptionPane.ERROR_MESSAGE); } }//GEN-LAST:event_saveButtonActionPerformed private void fgButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fgButtonActionPerformed java.awt.Color color = javax.swing.JColorChooser.showDialog(this, "Change Drawing Color", board.getForeground()); if (color != null) { board.setForeground(color); fgButton.setBackground(color); } }//GEN-LAST:event_fgButtonActionPerformed private void bgButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bgButtonActionPerformed java.awt.Color color = javax.swing.JColorChooser.showDialog(this, "Change Board Background Color", board.getBackground()); if (color != null) { board.setBackground(color); bgButton.setBackground(color); } }//GEN-LAST:event_bgButtonActionPerformed private void eraserComboActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_eraserComboActionPerformed board.setEraserIndex(eraserCombo.getSelectedIndex()); }//GEN-LAST:event_eraserComboActionPerformed private void weightComboActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_weightComboActionPerformed board.setStrokeIndex(weightCombo.getSelectedIndex()); }//GEN-LAST:event_weightComboActionPerformed private void clearButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clearButtonActionPerformed board.clearBoard(); }//GEN-LAST:event_clearButtonActionPerformed private void polygonButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_polygonButtonActionPerformed board.setTool(DrawingBoard.TOOL_POLYGON); }//GEN-LAST:event_polygonButtonActionPerformed private void eraserButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_eraserButtonActionPerformed board.setTool(DrawingBoard.TOOL_ERASER); }//GEN-LAST:event_eraserButtonActionPerformed private void pencilButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pencilButtonActionPerformed board.setTool(DrawingBoard.TOOL_PENCIL); }//GEN-LAST:event_pencilButtonActionPerformed private void diamondButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_diamondButtonActionPerformed board.setTool(DrawingBoard.TOOL_DIAMOND); }//GEN-LAST:event_diamondButtonActionPerformed private void ovalButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ovalButtonActionPerformed board.setTool(DrawingBoard.TOOL_OVAL); }//GEN-LAST:event_ovalButtonActionPerformed private void rectButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rectButtonActionPerformed board.setTool(DrawingBoard.TOOL_RECT); }//GEN-LAST:event_rectButtonActionPerformed private void lineButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lineButtonActionPerformed board.setTool(DrawingBoard.TOOL_LINE); }//GEN-LAST:event_lineButtonActionPerformed /** * @param args the command line arguments */ public static void main(String args[]) { java.util.Locale.setDefault(java.util.Locale.US); java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new AppFrame().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton bgButton; private DrawingBoard board; private javax.swing.JButton clearButton; private javax.swing.JPanel colorPanel; private javax.swing.JLabel copyleft; private javax.swing.JPanel ctrlPanel; private javax.swing.JToggleButton diamondButton; private javax.swing.JToggleButton eraserButton; private javax.swing.JComboBox eraserCombo; private javax.swing.JButton exportButton; private javax.swing.JButton fgButton; private javax.swing.JToggleButton lineButton; private javax.swing.JButton loadButton; private javax.swing.JPanel mediumPanel1; private javax.swing.JPanel mediumPanel2; private javax.swing.JPanel mediumPanel3; private javax.swing.JPanel mediumPanel4; private javax.swing.JToggleButton ovalButton; private javax.swing.JToggleButton pencilButton; private javax.swing.JToggleButton polygonButton; private javax.swing.JToggleButton rectButton; private javax.swing.JButton saveButton; private javax.swing.JPanel savePanel; private javax.swing.JPanel sizePanel; private javax.swing.ButtonGroup toolsGroup; private javax.swing.JPanel toolsPanel; private javax.swing.JComboBox weightCombo; // End of variables declaration//GEN-END:variables }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?