📄 mainframe.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 + -