?? hisgram.java
字號:
import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import bmpinfo.Bmp_Information;import java.awt.*;import java.io.*;public class hisgram extends JDialog { Bmp_Information pro; int[] draw=new int[256]; static Color color=null; static int max=1; public hisgram(java.awt.Frame parent, boolean modal,String file) { super(parent, modal); pro=new Bmp_Information(file); initComponents(); } private void initComponents() { jPanel2 = new JPanel(); jPanel3=new JPanel(); jLabel1=new JLabel("灰度值:"); jLabel2=new JLabel("數 量:"); jTextField1=new JTextField(); jTextField1.setEditable(false); jTextField2=new JTextField(); jTextField2.setEditable(false); lightradio = new JRadioButton(); redradio = new JRadioButton(); greenradio = new JRadioButton(); blueradio = new JRadioButton(); getContentPane().setLayout(null); setTitle("\u76f4\u65b9\u56fe"); setResizable(false); setDefaultCloseOperation( WindowConstants.DISPOSE_ON_CLOSE); jPanel2.setBorder(new TitledBorder("\u901a\u9053\u9009\u62e9")); lightradio.setText("混合亮度"); jPanel2.add(lightradio); redradio.setText("\u7ea2\u8272\u901a\u9053"); jPanel2.add(redradio); greenradio.setText("\u7eff\u8272\u901a\u9053"); jPanel2.add(greenradio); blueradio.setText("\u84dd\u8272\u901a\u9053"); blueradio.addActionListener(new ActionListener() { public void actionPerformed( ActionEvent evt) { blueradioActionPerformed(evt); } }); redradio.addActionListener(new ActionListener() { public void actionPerformed( ActionEvent evt) { redradioActionPerformed(evt); } }); greenradio.addActionListener(new ActionListener() { public void actionPerformed( ActionEvent evt) { greenradioActionPerformed(evt); } }); lightradio.addActionListener(new ActionListener() { public void actionPerformed( ActionEvent evt) { lightradioActionPerformed(evt); } }); canvas = new Canva() { public void paint(Graphics g) { super.paint(g); g.setColor(color); max=1; for(int i=0;i<256;i++) { if(draw[i]>max) max=draw[i]; } for(int i=0;i<draw.length;i++) { g.drawLine(i,210,i,(int)(210-210*(float)draw[i]/max)); } } }; canvas.addMouseListener(new MouseAdapter() { public void mouseEntered(MouseEvent e) { setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR)); } public void mouseExited(MouseEvent e) { setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); } }); canvas.addMouseMotionListener(new MouseMotionAdapter() { public void mouseMoved(MouseEvent e) { if(e.getX()<=255){ jTextField1.setText(Integer.toString(e.getX())); jTextField2.setText(Integer.toString(draw[e.getX()])); } else jTextField1.setText("255"); } }); getContentPane().add(canvas); jPanel2.add(blueradio); jPanel2.setBounds(285, 5, 120, 148); jPanel3.setBorder(new TitledBorder("當前灰度")); jPanel3.setLayout(null); jPanel3.add(jLabel1); jLabel1.setBounds(5,22,45,16); jPanel3.add(jTextField1); jTextField1.setBounds(50,20,60,20); jPanel3.add(jLabel2); jLabel2.setBounds(5,41,45,16); jPanel3.add(jTextField2); jTextField2.setBounds(50,40,60,20); getContentPane().add(jPanel3); jPanel3.setBounds(285, 150, 120, 70); java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); setBounds((screenSize.width-418)/2, (screenSize.height-261)/2, 418, 265); } private void blueradioActionPerformed( ActionEvent evt) { greenradio.setSelected(false); redradio.setSelected(false); lightradio.setSelected(false); if(blueradio.isSelected()==true) { draw=pro.getBluelevel(); color=Color.blue; canvas.repaint(); } } private void redradioActionPerformed( ActionEvent evt) { greenradio.setSelected(false); blueradio.setSelected(false); lightradio.setSelected(false); if(redradio.isSelected()==true) { draw=pro.getRedlevel(); color=Color.red; canvas.repaint(); } } private void greenradioActionPerformed( ActionEvent evt) { blueradio.setSelected(false); redradio.setSelected(false); lightradio.setSelected(false); if(greenradio.isSelected()==true) { draw=pro.getGreenlevel(); color=Color.green; canvas.repaint(); } } private void lightradioActionPerformed( ActionEvent evt) { greenradio.setSelected(false); redradio.setSelected(false); blueradio.setSelected(false); if(lightradio.isSelected()==true) { draw=pro.getGraylevel(); color=Color.darkGray; canvas.repaint(); } } private JRadioButton blueradio; private Canva canvas; private JRadioButton greenradio; private JPanel jPanel2; private JRadioButton lightradio; private JRadioButton redradio; private JPanel jPanel3; private JLabel jLabel1; private JTextField jTextField1; private JLabel jLabel2; private JTextField jTextField2; }class Canva extends JPanel { Canva(){ setBackground(SystemColor.controlLtHighlight); setBorder(new MatteBorder(new Insets(2, 2, 2, 2), new Color(51, 51, 255))); setBounds(10, 10, 270, 210); } public void paint(Graphics g) { super.paint(g); int h=54,v=42; g.setColor(Color.lightGray); for(int i=0;i<42;i++) { g.drawLine(0,i*5,270,i*5); } for(int i=0;i<54;i++) { g.drawLine(i*5,0,i*5,210); } g.setColor(Color.magenta); g.drawLine(255,200,255,20); g.setColor(Color.black); g.drawString("255",245,210); }};
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -