📄 colorpatternpanel.java
字号:
0x0000, // 0x0808, // X X 0x0000, // 0x0202, // X X 0x0000, // 0x8080, // X X 0x0000, // 0x2020, // X X 0x0000, // 0x0000, // 0x0303, // XX XX 0x4848, // X X X X 0x0303, // XX XX 0x0000, // 0x3030, // XX XX 0x8484, // X X X X 0x3030, // XX XX 0x0000, // 0x0303, // XX XX 0x4848, // X X X X 0x0303, // XX XX 0x0000, // 0x3030, // XX XX 0x8484, // X X X X 0x3030, // XX XX 0x1C1C, // XXX XXX 0x3E3E, // XXXXX XXXXX 0x3636, // XX XX XX XX 0x3E3E, // XXXXX XXXXX 0x1C1C, // XXX XXX 0x0000, // 0x0000, // 0x0000, // 0x1C1C, // XXX XXX 0x3E3E, // XXXXX XXXXX 0x3636, // XX XX XX XX 0x3E3E, // XXXXX XXXXX 0x1C1C, // XXX XXX 0x0000, // 0x0000, // 0x0000, // 0x0000, // 0xCCCC, // XX XX XX XX 0x0000, // 0xCCCC, // XX XX XX XX 0x0000, // 0x0000, // 0x0000, // 0x0000, // 0x0000, // 0xCCCC, // XX XX XX XX 0x0000, // 0xCCCC, // XX XX XX XX 0x0000, // 0x0000, // 0x0000, // 0x0000, // 0x0000, // 0x0000, // 0x2222, // X X X X 0x8888, // X X X X 0x0000, // 0x0000, // 0x2222, // X X X X 0x8888, // X X X X 0x0000, // 0x0000, // 0x2222, // X X X X 0x8888, // X X X X 0x0000, // 0x0000, // 0x2222, // X X X X 0x8888, // X X X X 0x0000, // 0x0000, // 0x1111, // X X X X 0x0000, // 0x0000, // 0x0000, // 0x1111, // X X X X 0x0000, // 0x0000, // 0x0000, // 0x1111, // X X X X 0x0000, // 0x0000, // 0x0000, // 0x1111, // X X X X 0x0000, // 0x0000, // 0x2222, // X X X X 0x4444, // X X X X 0x8888, // X X X X 0x0000, // 0x2222, // X X X X 0x4444, // X X X X 0x8888, // X X X X 0x0000, // 0x2222, // X X X X 0x4444, // X X X X 0x8888, // X X X X 0x0000, // 0x2222, // X X X X 0x4444, // X X X X 0x8888, // X X X X 0x0000, // 0x2222, // X X X X 0x5555, // X X X X X X X X 0x2222, // X X X X 0x0000, // 0x2222, // X X X X 0x5555, // X X X X X X X X 0x2222, // X X X X 0x0000, // 0x2222, // X X X X 0x5555, // X X X X X X X X 0x2222, // X X X X 0x0000, // 0x2222, // X X X X 0x5555, // X X X X X X X X 0x2222, // X X X X 0x0000, // 0x0000, // 0x0000, // 0x0000, // 0x0000, // 0x0000, // 0x0000, // 0x0000, // 0x0000, // 0x0000, // 0x0000, // 0x0000, // 0x0000, // 0x0000, // 0x0000, // 0x0000, // 0xFFFF, // XXXXXXXXXXXXXXXX 0xFFFF, // XXXXXXXXXXXXXXXX 0xFFFF, // XXXXXXXXXXXXXXXX 0xFFFF, // XXXXXXXXXXXXXXXX 0xFFFF, // XXXXXXXXXXXXXXXX 0xFFFF, // XXXXXXXXXXXXXXXX 0xFFFF, // XXXXXXXXXXXXXXXX 0xFFFF, // XXXXXXXXXXXXXXXX 0xFFFF, // XXXXXXXXXXXXXXXX 0xFFFF, // XXXXXXXXXXXXXXXX 0xFFFF, // XXXXXXXXXXXXXXXX 0xFFFF, // XXXXXXXXXXXXXXXX 0xFFFF, // XXXXXXXXXXXXXXXX 0xFFFF, // XXXXXXXXXXXXXXXX 0xFFFF, // XXXXXXXXXXXXXXXX 0xFFFF // XXXXXXXXXXXXXXXX }; private class PatternChoices extends JPanel implements MouseListener { private static final int NUMROWS = 2; private static final int ROWSIZE = 17; int numPatterns = preDefinedPatterns.length / 16; int yEntry = -1, xEntry = -1; PatternChoices() { addMouseListener(this); setMaximumSize(new Dimension(numPatterns*ROWSIZE/NUMROWS+1, ROWSIZE*NUMROWS+1)); setMinimumSize(new Dimension(numPatterns*ROWSIZE/NUMROWS+1, ROWSIZE*NUMROWS+1)); setPreferredSize(new Dimension(numPatterns*ROWSIZE/NUMROWS+1, ROWSIZE*NUMROWS+1)); } /** * Method to repaint this PatternChoices. */ public void paint(Graphics g) { ImageIcon icon = Resources.getResource(getClass(), "IconLayerPatterns.gif"); g.drawImage(icon.getImage(), 0, 0, null); if (yEntry != -1 && xEntry != -1) { g.setColor(Color.BLACK); // Simulating thick lines g.drawRect(xEntry*ROWSIZE-1, yEntry*ROWSIZE-1, ROWSIZE+1, ROWSIZE+1); g.drawRect(xEntry*ROWSIZE, yEntry*ROWSIZE, ROWSIZE, ROWSIZE); g.drawRect(xEntry*ROWSIZE+1, yEntry*ROWSIZE+1, ROWSIZE-1, ROWSIZE-1); } } // the MouseListener events public void mousePressed(MouseEvent evt) { if (currentLI == null || currentLI.justColor) return; xEntry = evt.getX() / ROWSIZE; if (xEntry >= numPatterns/NUMROWS) xEntry = numPatterns/NUMROWS-1; yEntry = evt.getY() / ROWSIZE; if (yEntry >= NUMROWS) yEntry = NUMROWS-1; int iconIndex = xEntry + 11*yEntry; for(int i=0; i<16; i++) { currentLI.pattern[i] = preDefinedPatterns[iconIndex*16+i]; } // fake a check in the stipple use useStipplePatternDisplay.setSelected(true); outlinePattern.setEnabled(true); currentLI.useStippleDisplay = true; paint(this.getGraphics()); patternView.repaint(); colorPreviewPanel.repaint(); } public void mouseReleased(MouseEvent evt) {} public void mouseClicked(MouseEvent evt) {} public void mouseEntered(MouseEvent evt) {} public void mouseExited(MouseEvent evt) {} } private static final int SAMPLEWID = 60; private static final int SAMPLEHEI = 11; public ImageIcon getSample(Outline o) { // construct a sample of this outline texture int pattern = o.getPattern(); int len = o.getLen(); int thickness = o.getThickness(); BufferedImage bi = new BufferedImage(SAMPLEWID+SAMPLEHEI, SAMPLEHEI, BufferedImage.TYPE_INT_RGB); int startX = SAMPLEHEI / 2; int startY = (SAMPLEHEI-thickness) / 2; for(int y=0; y<SAMPLEHEI; y++) for(int x=0; x<SAMPLEWID+SAMPLEHEI; x++) bi.setRGB(x, y, 0xFFFFFF); for(int x=0; x<SAMPLEWID+SAMPLEHEI; x++) { bi.setRGB(x, 0, 0); bi.setRGB(x, SAMPLEHEI-1, 0); } for(int y=0; y<SAMPLEHEI; y++) { bi.setRGB(0, y, 0); bi.setRGB(SAMPLEWID+SAMPLEHEI-1, y, 0); } for(int y=0; y<thickness; y++) { int patPos = 0; for(int x=0; x<SAMPLEWID; x++) { if ((pattern & (1<<patPos)) != 0) bi.setRGB(x+startX, y+startY, 0); else bi.setRGB(x+startX, y+startY, 0xFFFFFF); patPos++; if (patPos >= len) patPos = 0; } } return new ImageIcon(bi); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; pattern = new javax.swing.JPanel(); jLabel50 = new javax.swing.JLabel(); useStipplePatternDisplay = new javax.swing.JCheckBox(); outlinePattern = new javax.swing.JComboBox(); jLabel3 = new javax.swing.JLabel(); opacityLabel = new javax.swing.JLabel(); opacity = new javax.swing.JTextField(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); useStipplePatternPrinter = new javax.swing.JCheckBox(); color = new javax.swing.JPanel(); jLabel40 = new javax.swing.JLabel(); transparentLayer = new javax.swing.JComboBox(); setLayout(new java.awt.GridBagLayout()); pattern.setLayout(new java.awt.GridBagLayout()); pattern.setBorder(javax.swing.BorderFactory.createTitledBorder("Pattern")); jLabel50.setText("Click on a pattern below to use it above"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.gridwidth = 3; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4); pattern.add(jLabel50, gridBagConstraints); useStipplePatternDisplay.setText("Use Fill Pattern on Screen"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridwidth = 3; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4); pattern.add(useStipplePatternDisplay, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 4; gridBagConstraints.gridwidth = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4); pattern.add(outlinePattern, gridBagConstraints); jLabel3.setText("Outline pattern:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; pattern.add(jLabel3, gridBagConstraints); opacityLabel.setText("Opacity:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; gridBagConstraints.gridheight = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); pattern.add(opacityLabel, gridBagConstraints); opacity.setColumns(6); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 5; gridBagConstraints.gridheight = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); pattern.add(opacity, gridBagConstraints); jLabel1.setText("0: Transparent"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 5; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; pattern.add(jLabel1, gridBagConstraints); jLabel2.setText("1: Opaque"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 6; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; pattern.add(jLabel2, gridBagConstraints); useStipplePatternPrinter.setText("Use Fill Pattern on Printer"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 7; gridBagConstraints.gridwidth = 3; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); pattern.add(useStipplePatternPrinter, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; gridBagConstraints.weightx = 1.0; add(pattern, gridBagConstraints); color.setLayout(new java.awt.GridBagLayout()); color.setBorder(javax.swing.BorderFactory.createTitledBorder("Color")); jLabel40.setText("Transparency:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); color.add(jLabel40, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); color.add(transparentLayer, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridheight = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; add(color, gridBagConstraints); }// </editor-fold>//GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JPanel color; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel40; private javax.swing.JLabel jLabel50; private javax.swing.JTextField opacity; private javax.swing.JLabel opacityLabel; private javax.swing.JComboBox outlinePattern; private javax.swing.JPanel pattern; private javax.swing.JComboBox transparentLayer; private javax.swing.JCheckBox useStipplePatternDisplay; private javax.swing.JCheckBox useStipplePatternPrinter; // End of variables declaration//GEN-END:variables }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -