📄 mainfrm.java
字号:
package disposeimage;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import com.borland.jbcl.layout.*;import javax.swing.event.*;/** * <p>Title: DisposeImage</p> * <p>Description: 应用Java 2D API实现图像的各种处理</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: 北京师范大学计算机系</p> * @author 郑庆丰 * @version 1.0 */public class MainFrm extends JFrame { //实例化 DrawPicturePanel dpp=new DrawPicturePanel(); JPanel contentPane; Border border1; //private BorderLayout borderLayout1 = new BorderLayout(); XYLayout xYLayout1 = new XYLayout(); JPanel jPanel1 = new JPanel(); Border border2; Border border3; Border border4; JButton turn_btn = new JButton(); JButton jButton4 = new JButton(); JButton jButton5 = new JButton(); JButton jButton8 = new JButton(); JPanel jPanel2 = new JPanel(); Border border5; JButton jButton1 = new JButton(); JPanel jPanel3 = new JPanel(); Border border6; JSlider jSlider1 = new JSlider(); JSlider jSlider2 = new JSlider(); JPanel jPanel4 = new JPanel(); Border border7; TitledBorder titledBorder1; JLabel jLabel1 = new JLabel(); XYLayout xYLayout2 = new XYLayout(); JLabel jLabel2 = new JLabel(); Border border8; JPanel jPanel5 = new JPanel(); JButton jButton2 = new JButton(); XYLayout xYLayout3 = new XYLayout(); JButton jButton3 = new JButton(); JButton jButton6 = new JButton(); JButton jButton7 = new JButton(); public MainFrm(DrawPicturePanel dpp) { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); dpp.repaint(); } catch(Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { contentPane = (JPanel) this.getContentPane(); border1 = new EtchedBorder(EtchedBorder.RAISED,Color.lightGray,new Color(148, 145, 140)); border2 = BorderFactory.createEtchedBorder(Color.white,new Color(148, 145, 140)); border3 = BorderFactory.createEtchedBorder(Color.white,new Color(148, 145, 140)); border4 = BorderFactory.createEtchedBorder(Color.white,new Color(148, 145, 140)); border5 = BorderFactory.createEtchedBorder(Color.white,new Color(148, 145, 140)); border6 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white,new Color(148, 145, 140)),"拉伸"); border7 = BorderFactory.createEtchedBorder(Color.white,new Color(148, 145, 140)); titledBorder1 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white,new Color(148, 145, 140)),"明暗度"); border8 = BorderFactory.createEtchedBorder(Color.white,new Color(148, 145, 140)); contentPane.setLayout(xYLayout1); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setSize(new Dimension(512, 480)); this.setTitle("图像处理器"); jPanel1.setBorder(border2); turn_btn.setText("翻转"); turn_btn.addActionListener(new MainFrm_turn_btn_actionAdapter(this)); jButton4.setText("锐化"); jButton4.addActionListener(new MainFrm_jButton4_actionAdapter(this)); jButton5.setText("模糊"); jButton5.addActionListener(new MainFrm_jButton5_actionAdapter(this)); jButton8.setText("退出"); jButton8.addActionListener(new MainFrm_jButton8_actionAdapter(this)); jPanel2.setBorder(border4); jPanel2.setBorder(border5); jButton1.setActionCommand(""); jButton1.setText("还原"); jButton1.addActionListener(new MainFrm_jButton1_actionAdapter(this)); jPanel3.setBorder(border6); jPanel3.setLayout(xYLayout2); jPanel4.setBorder(titledBorder1); jPanel4.setLayout(xYLayout3); jLabel1.setText("x轴"); jLabel2.setRequestFocusEnabled(true); jLabel2.setText("y轴"); jPanel5.setBorder(border2); jSlider1.setInverted(true); jSlider1.setPaintLabels(false); jSlider1.setPaintTicks(true); jSlider1.setPaintTrack(true); jSlider1.setEnabled(true); jSlider1.setDoubleBuffered(false); jSlider1.setRequestFocusEnabled(true); jSlider1.setVerifyInputWhenFocusTarget(true); jSlider1.addChangeListener(new MainFrm_jSlider1_changeAdapter(this)); jSlider2.setPaintTicks(true); jSlider2.addChangeListener(new MainFrm_jSlider2_changeAdapter(this)); jButton2.setText("明"); jButton2.addActionListener(new MainFrm_jButton2_actionAdapter(this)); jButton3.setText("中"); jButton3.addActionListener(new MainFrm_jButton3_actionAdapter(this)); jButton6.setText("暗"); jButton6.addActionListener(new MainFrm_jButton6_actionAdapter(this)); //显示dpp,用borderLayout的方式 jButton7.setText("变灰"); jButton7.addActionListener(new MainFrm_jButton7_actionAdapter(this)); contentPane.add(this.dpp,new XYConstraints(0, 0, 300, 300)); jPanel3.add(jSlider1, new XYConstraints(36, 0, 182, -1)); jPanel3.add(jLabel1, new XYConstraints(12, 2, -1, -1)); jPanel3.add(jSlider2, new XYConstraints(36, 30, 182, -1)); jPanel3.add(jLabel2, new XYConstraints(12, 32, -1, -1)); contentPane.add(jButton7, new XYConstraints(406, 190, 82, -1)); contentPane.add(jButton4, new XYConstraints(406, 118, 82, -1)); contentPane.add(jButton5, new XYConstraints(406, 153, 82, -1)); contentPane.add(turn_btn, new XYConstraints(406, 85, 82, -1)); contentPane.add(jButton8, new XYConstraints(406, 276, 82, -1)); contentPane.add(jButton1, new XYConstraints(406, 245, 82, -1)); contentPane.add(jPanel2, new XYConstraints(377, 3, 4, 300)); contentPane.add(jPanel1, new XYConstraints(3, 317, 500, 4)); contentPane.add(jPanel4, new XYConstraints(264, 321, 236, 89)); jPanel4.add(jButton2, new XYConstraints(20, 12, 72, -1)); jPanel4.add(jButton3, new XYConstraints(92, 12, -1, -1)); jPanel4.add(jButton6, new XYConstraints(137, 12, 72, -1)); contentPane.add(jPanel5, new XYConstraints(387, 227, 140, 2)); contentPane.add(jPanel3, new XYConstraints(8, 321, 237, 88)); } public void jMenuFileExit_actionPerformed(ActionEvent e) { System.exit(0); } protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { jMenuFileExit_actionPerformed(null); } } void turn_btn_actionPerformed(ActionEvent e) { //调用翻转的方法 dpp.turnBufferedImage(); //重画屏幕,先调用update(),在调用paint() dpp.repaint(); } void jButton3_actionPerformed(ActionEvent e) { dpp.resume(); } void jButton4_actionPerformed(ActionEvent e) { dpp.sharpImage(); dpp.repaint(); } void jButton1_actionPerformed(ActionEvent e) { dpp.resume(); } void jButton5_actionPerformed(ActionEvent e) { dpp.blurImage(); dpp.repaint(); } void jButton8_actionPerformed(ActionEvent e) { System.exit(0); } void jButton2_actionPerformed(ActionEvent e) { dpp.brightenLUT(); dpp.repaint(); } void jButton6_actionPerformed(ActionEvent e) { dpp.darkenLUT(); dpp.repaint(); } void jSlider1_stateChanged(ChangeEvent e) { double scalex = ((double)((JSlider)e.getSource()).getValue())/100; if(scalex==0){ scalex=0.01; } dpp.setscaleX(scalex); dpp.transform(); dpp.repaint(); } void jSlider2_stateChanged(ChangeEvent e) { double scaley = ((double)((JSlider)e.getSource()).getValue())/100; if(scaley==0){ scaley=0.01; } dpp.setscaleY(scaley); dpp.transform(); dpp.repaint(); } void jButton7_actionPerformed(ActionEvent e) { dpp.grayImage(); dpp.repaint(); }}class MainFrm_turn_btn_actionAdapter implements java.awt.event.ActionListener { MainFrm adaptee; MainFrm_turn_btn_actionAdapter(MainFrm adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.turn_btn_actionPerformed(e); }}class MainFrm_jButton4_actionAdapter implements java.awt.event.ActionListener { MainFrm adaptee; MainFrm_jButton4_actionAdapter(MainFrm adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton4_actionPerformed(e); }}class MainFrm_jButton1_actionAdapter implements java.awt.event.ActionListener { MainFrm adaptee; MainFrm_jButton1_actionAdapter(MainFrm adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton1_actionPerformed(e); }}class MainFrm_jButton5_actionAdapter implements java.awt.event.ActionListener { MainFrm adaptee; MainFrm_jButton5_actionAdapter(MainFrm adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton5_actionPerformed(e); }}class MainFrm_jButton8_actionAdapter implements java.awt.event.ActionListener { MainFrm adaptee; MainFrm_jButton8_actionAdapter(MainFrm adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton8_actionPerformed(e); }}class MainFrm_jButton2_actionAdapter implements java.awt.event.ActionListener { MainFrm adaptee; MainFrm_jButton2_actionAdapter(MainFrm adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton2_actionPerformed(e); }}class MainFrm_jButton6_actionAdapter implements java.awt.event.ActionListener { MainFrm adaptee; MainFrm_jButton6_actionAdapter(MainFrm adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton6_actionPerformed(e); }}class MainFrm_jButton3_actionAdapter implements java.awt.event.ActionListener { MainFrm adaptee; MainFrm_jButton3_actionAdapter(MainFrm adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton3_actionPerformed(e); }}class MainFrm_jSlider1_changeAdapter implements javax.swing.event.ChangeListener { MainFrm adaptee; MainFrm_jSlider1_changeAdapter(MainFrm adaptee) { this.adaptee = adaptee; } public void stateChanged(ChangeEvent e) { adaptee.jSlider1_stateChanged(e); }}class MainFrm_jSlider2_changeAdapter implements javax.swing.event.ChangeListener { MainFrm adaptee; MainFrm_jSlider2_changeAdapter(MainFrm adaptee) { this.adaptee = adaptee; } public void stateChanged(ChangeEvent e) { adaptee.jSlider2_stateChanged(e); }}class MainFrm_jButton7_actionAdapter implements java.awt.event.ActionListener { MainFrm adaptee; MainFrm_jButton7_actionAdapter(MainFrm adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton7_actionPerformed(e); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -