⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imageprocframe.java

📁 用纯java技术实现了对图像锐化、模糊、边缘、灰度等操作功能
💻 JAVA
字号:
package imageproc;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import java.io.*;
import com.borland.jbcl.layout.*;import javax.swing.border.*;

/**
 * <p>Title: ImageProc Demo</p>
 * <p>Description: this is a ImageProc demo</p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */
public class ImageProcFrame extends JFrame
{
  JPanel contentPane;
  Panel1 ypanel=new Panel1();
  JPanel jPanel1=new JPanel();
  JPanel jPanel2=new JPanel();
  JButton jButton1=new JButton();
  JRadioButton jRadioButton1=new JRadioButton();
  JRadioButton jRadioButton2=new JRadioButton();
  JRadioButton jRadioButton3=new JRadioButton();
  JRadioButton jRadioButton4=new JRadioButton();
  JRadioButton jRadioButton5=new JRadioButton();
  ButtonGroup buttonGroup1=new ButtonGroup();
  JPanel jPanel3 = new JPanel();
  JPanel jPanel4 = new JPanel();
  JButton jButton2 = new JButton();
  GridLayout gridLayout1 = new GridLayout();
  JLabel jLabel1 = new JLabel();
  BorderLayout borderLayout2 = new BorderLayout();
  FlowLayout flowLayout1 = new FlowLayout();
  BorderLayout borderLayout1 = new BorderLayout();
  JRadioButton jRadioButton6 = new JRadioButton();  TitledBorder titledBorder1;  TitledBorder titledBorder2;
  //Construct the frame
  public ImageProcFrame()
  {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try{
      jbInit();
    }
    catch(Exception e){
      e.printStackTrace();
    }
  }
  //Component initialization
  private void jbInit() throws Exception
  {
    contentPane=(JPanel)this.getContentPane();
    titledBorder1 = new TitledBorder("");    titledBorder2 = new TitledBorder("");    contentPane.setLayout(borderLayout1);
    this.setResizable(false);
    this.setSize(new Dimension(495, 386));
    this.setTitle("图像处理");
    jButton1.setText("打开");
    jButton1.addActionListener(new ImageProcFrame_jButton1_actionAdapter(this));
    jPanel1.setBackground(new Color(72, 144, 164));
    jPanel1.setPreferredSize(new Dimension(354, 35));
    jPanel1.setLayout(flowLayout1);
    jPanel2.setBackground(new Color(72, 144, 164));
    jPanel2.setBorder(BorderFactory.createEtchedBorder());
    jPanel2.setLayout(gridLayout1);
    jRadioButton1.setText("模糊处理");
    jRadioButton1.addActionListener(new ImageProcFrame_jRadioButton1_actionAdapter(this));
    jRadioButton2.setText("变亮操作");
    jRadioButton2.addActionListener(new ImageProcFrame_jRadioButton2_actionAdapter(this));
    jRadioButton3.setText("灰度操作");
    jRadioButton3.addActionListener(new ImageProcFrame_jRadioButton3_actionAdapter(this));
    jRadioButton4.setBackground(UIManager.getColor("MenuBar.background"));
    jRadioButton4.setText("边界检测");
    jRadioButton4.addActionListener(new ImageProcFrame_jRadioButton4_actionAdapter(this));
    jRadioButton5.setBackground(SystemColor.menu);
    jRadioButton5.setText("原始图形");
    jRadioButton5.addActionListener(new ImageProcFrame_jRadioButton5_actionAdapter(this));
    jPanel3.setBackground(new Color(72, 144, 164));
    jPanel3.setLayout(borderLayout2);
    jPanel4.setBackground(new Color(72, 144, 164));    jPanel4.setEnabled(true);    jPanel4.setBorder(null);    jPanel4.setDoubleBuffered(true);
    jPanel4.setPreferredSize(new Dimension(20, 10));    jPanel4.setRequestFocusEnabled(true);    jPanel4.setToolTipText("");
    jButton2.setText("退出");
    jButton2.addActionListener(new ImageProcFrame_jButton2_actionAdapter(this));
    gridLayout1.setColumns(1);
    gridLayout1.setHgap(15);
    gridLayout1.setRows(6);
    gridLayout1.setVgap(20);
    jLabel1.setFont(new java.awt.Font("Dialog", 1, 18));
    jLabel1.setForeground(Color.red);    jLabel1.setDebugGraphicsOptions(0);
    jLabel1.setMinimumSize(new Dimension(322, 26));
    jLabel1.setOpaque(false);
    jLabel1.setPreferredSize(new Dimension(111, 30));
    jLabel1.setRequestFocusEnabled(true);
    jLabel1.setVerifyInputWhenFocusTarget(true);
    jLabel1.setHorizontalTextPosition(SwingConstants.TRAILING);
    jLabel1.setText("                      图    像    处    理    程    序");
    jLabel1.setVerticalAlignment(SwingConstants.CENTER);
    flowLayout1.setHgap(80);
    ypanel.setBackground(new Color(200, 230, 235));
    jRadioButton6.setText("锐化处理");
    jRadioButton6.addActionListener(new ImageProcFrame_jRadioButton6_actionAdapter(this));
    contentPane.add(jPanel1, BorderLayout.SOUTH);
    jPanel1.add(jButton1, null);
    jPanel1.add(jButton2, null);
    contentPane.add(jPanel2, BorderLayout.WEST);
    jPanel2.add(jRadioButton1, null);
    jPanel2.add(jRadioButton6, null);
    jPanel2.add(jRadioButton2, null);
    jPanel2.add(jRadioButton3, null);
    jPanel2.add(jRadioButton4, null);
    jPanel2.add(jRadioButton5, null);
    buttonGroup1.add(jRadioButton1);
    buttonGroup1.add(jRadioButton2);
    buttonGroup1.add(jRadioButton3);
    buttonGroup1.add(jRadioButton4);
    buttonGroup1.add(jRadioButton5);
    contentPane.add(ypanel, BorderLayout.CENTER);
    contentPane.add(jPanel3, BorderLayout.NORTH);
    jPanel3.add(jLabel1, BorderLayout.CENTER);
    contentPane.add(jPanel4, BorderLayout.EAST);
   //System.out.print(ypanel.getWidth());
    //System.out.print(this.getWidth());
    buttonGroup1.add(jRadioButton6);
  }
  void change()
  {
    if(jRadioButton1.isSelected()){
      ypanel.blur();
    }
    else if(jRadioButton2.isSelected()){
      ypanel.brighten();
    }
    else if(jRadioButton3.isSelected()){
      ypanel.toGray();
    }
    else if(jRadioButton4.isSelected()){
      ypanel.edgeDetect();
    }
    else if(jRadioButton5.isSelected()){
      ypanel.restore();
    }
    else if(jRadioButton6.isSelected()){
      ypanel.acuteness();
    }
  }
 void jButton1_actionPerformed(ActionEvent e)
  {
    JFileChooser chooser=new JFileChooser();
    chooser.setCurrentDirectory(new File("."));
    chooser.setFileFilter(new FileFilter()
    {
      public boolean accept(File f)
      {
        String name=f.getName().toLowerCase();
        return name.endsWith(".gif")||name.endsWith(".jpg")||
                 name.endsWith(".jpeg")||f.isDirectory();}
      public String getDescription()
      {
        return "Image files";}});
    int r=chooser.showOpenDialog(this);
    if(r==JFileChooser.APPROVE_OPTION){
      String name=chooser.getSelectedFile().getAbsolutePath();

      ypanel.loadImage(name);
    }
  }
  void jButton2_actionPerformed(ActionEvent e)
  {
  System.exit(1);

  /* JFileChooser chooser_save=new JFileChooser();
    chooser_save.setFileFilter(new FileFilter()
    {
      public boolean accept(File f)
      {
        String name=f.getName().toLowerCase();
        return name.endsWith(".gif")||name.endsWith(".jpg")||
                 name.endsWith(".jpeg")||f.isDirectory();}
      public String getDescription()
      {
        return "Image files";}});

    int result=chooser_save.showSaveDialog(this);*/

  }

  void jRadioButton1_actionPerformed(ActionEvent e)
  {
change();
  }

  void jRadioButton2_actionPerformed(ActionEvent e)
  {
change();
  }

  void jRadioButton3_actionPerformed(ActionEvent e)
  {
change();
  }

  void jRadioButton4_actionPerformed(ActionEvent e)
  {
change();
  }

  void jRadioButton5_actionPerformed(ActionEvent e)
  {
change();
  }
  void jRadioButton6_actionPerformed(ActionEvent e) {
change();
 }

  //Overridden so we can exit when window is closed
 protected void processWindowEvent(WindowEvent e)
 {
   super.processWindowEvent(e);
   if(e.getID()==WindowEvent.WINDOW_CLOSING){
     System.exit(0);
   }
 }
}
class ImageProcFrame_jRadioButton1_actionAdapter implements java.awt.event.ActionListener
{
  ImageProcFrame adaptee;

  ImageProcFrame_jRadioButton1_actionAdapter(ImageProcFrame adaptee)
  {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e)
  {
    adaptee.jRadioButton1_actionPerformed(e);
  }
}

class ImageProcFrame_jRadioButton2_actionAdapter implements java.awt.event.ActionListener
{
  ImageProcFrame adaptee;

  ImageProcFrame_jRadioButton2_actionAdapter(ImageProcFrame adaptee)
  {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e)
  {
    adaptee.jRadioButton2_actionPerformed(e);
  }
}

class ImageProcFrame_jRadioButton3_actionAdapter implements java.awt.event.ActionListener
{
  ImageProcFrame adaptee;

  ImageProcFrame_jRadioButton3_actionAdapter(ImageProcFrame adaptee)
  {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e)
  {
    adaptee.jRadioButton3_actionPerformed(e);
  }
}

class ImageProcFrame_jRadioButton4_actionAdapter implements java.awt.event.ActionListener
{
  ImageProcFrame adaptee;

  ImageProcFrame_jRadioButton4_actionAdapter(ImageProcFrame adaptee)
  {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e)
  {
    adaptee.jRadioButton4_actionPerformed(e);
  }
}

class ImageProcFrame_jRadioButton5_actionAdapter implements java.awt.event.ActionListener
{
  ImageProcFrame adaptee;

  ImageProcFrame_jRadioButton5_actionAdapter(ImageProcFrame adaptee)
  {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e)
  {
    adaptee.jRadioButton5_actionPerformed(e);
  }
}

class ImageProcFrame_jButton1_actionAdapter implements java.awt.event.ActionListener
{
  ImageProcFrame adaptee;

  ImageProcFrame_jButton1_actionAdapter(ImageProcFrame adaptee)
  {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e)
  {
    adaptee.jButton1_actionPerformed(e);
  }
}

class ImageProcFrame_jButton2_actionAdapter implements java.awt.event.ActionListener
{
  ImageProcFrame adaptee;

  ImageProcFrame_jButton2_actionAdapter(ImageProcFrame adaptee)
  {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e)
  {
    adaptee.jButton2_actionPerformed(e);
  }
}

class ImageProcFrame_jRadioButton6_actionAdapter implements java.awt.event.ActionListener {
  ImageProcFrame adaptee;

  ImageProcFrame_jRadioButton6_actionAdapter(ImageProcFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jRadioButton6_actionPerformed(e);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -