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

📄 mainframe.java

📁 jpeg图像均衡化处理 进行灰度化处理和图像均衡化 图片格式为jpg
💻 JAVA
字号:

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;

import javax.imageio.ImageIO;
import javax.swing.UIManager;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.border.BevelBorder;
import javax.swing.filechooser.FileFilter;

import java.awt.FlowLayout;
import java.awt.GridBagLayout;
import javax.swing.SwingConstants;
import java.awt.Font;
import java.awt.color.ColorSpace;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.awt.image.BufferedImageOp;
import java.awt.image.ColorConvertOp;
import java.awt.image.ConvolveOp;
import java.awt.image.Kernel;
import java.io.File;

public class MainFrame extends JFrame {

	private static final long serialVersionUID = 1L;

	private JPanel jContentPane = null;
	private JPanel jBmpPane = null;
	private JPanel jButtonPane = null;
	private JPanel jSouthPane = null;
	private JPanel jShowPane = null;
	private JPanel jMsgPane = null;
	private JPanel jExitPane = null;


	private JPanel jbuttons = null;

	private JPanel massgPane = null;

	private JButton exitButton = null;

	private JPanel buttomPane = null;

	private JPanel south = null;

	private JButton jButton1 = null;

	private JButton jButton2 = null;

	private JButton jButton3 = null;

	private JButton jButton4 = null;

	private JButton jButton5 = null;

	private JButton jButton6 = null;

	private JButton jButton7 = null;

	private JPanel jPanel = null;
	
	private MainFrame mf = null;

	private String filename = "..\\image\\"; 

	private JLabel showfilename = null;

	private JPanel filenamepane = null;

	private JLabel openFile = new JLabel();

	private BufferedImage image;

	/**
	 * This is the default constructor
	 */
	public MainFrame() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		openFile.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));
		this.setDefaultCloseOperation(EXIT_ON_CLOSE );
		//this.setPreferredSize(new Dimension(310, 460));
		this.setDefaultLookAndFeelDecorated(true);
		try{
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		}catch(Exception e){
			e.printStackTrace();
		}
		this.setSize(500, 300);
		this.setLocation(250,100);
		this.setContentPane(getJContentPane());
		this.setTitle("图像均衡化处理");
		
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		jContentPane = new JPanel();
		jContentPane.setLayout(new BorderLayout());
		jContentPane.add(getJBmpPane(),BorderLayout.CENTER);
		jContentPane.add(getJButtonPane(),BorderLayout.EAST);
		
		return jContentPane;
	}

	/**
	 * @return 返回 jBmpPane。
	 */
	public JPanel getJBmpPane() {
		jBmpPane = new JPanel();
		jBmpPane.setPreferredSize(new Dimension(320,240));
//		jBmpPane.setBorder(border);
		jBmpPane.add(getJPanel(), null);
		
		return jBmpPane;
	}

	/**
	 * @return 返回 jButtonPane。
	 */
	public JPanel getJButtonPane() {
		jButtonPane = new JPanel();
		jButtonPane.setLayout(new BorderLayout());
		jButtonPane.setPreferredSize(new Dimension(150, 250));
		jButtonPane.add(getJbuttons(), BorderLayout.SOUTH);
		return jButtonPane;
	}




	/**
	 * This method initializes jbuttons	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJbuttons() {
		if (jbuttons == null) {
			jbuttons = new JPanel();
			jbuttons.setLayout(new FlowLayout());
			jbuttons.setName("fgdfg");
			jbuttons.setPreferredSize(new Dimension(150, 240));
			jbuttons.add(getSouth(), null);
		}
		return jbuttons;
	}


	/**
	 * This method initializes buttomPane	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getButtomPane() {
		if (buttomPane == null) {
			buttomPane = new JPanel();
			buttomPane.setLayout(new FlowLayout());
			buttomPane.setPreferredSize(new Dimension(44, 100));

		}
		return buttomPane;
	}

	/**
	 * This method initializes south	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getSouth() {
		if (south == null) {
			south = new JPanel();
			south.setLayout(new BoxLayout(getSouth(), BoxLayout.Y_AXIS));
			south.setPreferredSize(new Dimension(87, 230));
			south.add(getJButton1(), null);
			south.add(getJButton2(), null);
			south.add(getJButton3(), null);

		}
		return south;
	}

	/**
	 * This method initializes jButton1	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton1() {
		if (jButton1 == null) {
			jButton1 = new JButton();
			jButton1.setHorizontalTextPosition(SwingConstants.CENTER);
			jButton1.setPreferredSize(new Dimension(100, 28));
			jButton1.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));
			jButton1.setText("打开图片");	
		}
			
			mf = this;
			jButton1.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent e) {
				// TODO Auto-generated Event stub actionPerformed()
				JFileChooser jc = new JFileChooser();
				jc.setCurrentDirectory(new File("..\\image"));
				jc.setFileFilter(new FileFilter(){
					public boolean accept(File f){
						String name = f.getName().toLowerCase();
						return name.endsWith(".jpg")
								||name.endsWith(".jpeg")
								||f.isDirectory();						
					}
					public String getDescription(){
						return "Image files";
						
					}
				});
				int rVal = jc.showOpenDialog(mf);
				if(rVal == JFileChooser.APPROVE_OPTION){
					String fname = jc.getSelectedFile().getName();
					String name = filename+fname;
					openFile.setText(fname);
					mypaint(name);
				}
			}
			});
		
	
		return jButton1;
	}

	/**
	 * This method initializes jButton2	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton2() {
		if (jButton2 == null) {
			jButton2 = new JButton();
			jButton2.setText("灰度图像");
			jButton2.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));
		}
		jButton2.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				//colorConvertOp();
				GrayImage gi = new GrayImage();
				gi.toGray(image);
				jPanel.repaint();
			}
		});
		return jButton2;
	}

	/**
	 * This method initializes jButton3	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton3() {
		if (jButton3 == null) {
			jButton3 = new JButton();
			jButton3.setText("灰度调整");
			jButton3.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));
		}
		jButton3.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				EquilibrateGray eg = new EquilibrateGray();
				eg.Equilibrate(image);
				jPanel.repaint();
			}
		});
		return jButton3;
	}



	/**
	 * This method initializes jPanel	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanel() {
		if(jPanel == null){
			showfilename = new JLabel();
			showfilename.setText("文件名: ");
			showfilename.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));
			jPanel = new JPanel();
//			jPanel.setLayout(new GridBagLayout());
			jPanel.setLayout(new BorderLayout());
			jPanel.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
			jPanel.setPreferredSize(new Dimension(320, 240));
		}
		mypaint(filename+"fg16003015.jpg");
		return jPanel;
	}
	private void mypaint(String filename){
		try{
			image = ImageIO.read(new File(filename));
		}catch(Exception e){
			e.printStackTrace();
		}
		JPanel panel = new JPanel(){
			public void paintComponent(Graphics g){
				super.paintComponent(g);
				if(image != null){
					g.drawImage(image,0,0,null);
				}
			}
		};
		jPanel.add(panel);
	}
}

⌨️ 快捷键说明

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