📄 mainframe.java
字号:
/**
* MainFrame.java
*
* 该文件用来建立应用程序主界面,并响应按钮按下后产生的事件
*
* Copyright 2004 by 海南大学信息学院
* @author 温小斌
* @version 1.0
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MainFrame extends JFrame implements ActionListener
{
JPanel panelTop = new JPanel(); //用来设置参数
JPanel panelDown = new JPanel();
MyPanel panelCenter = new MyPanel(); //用来显示原始的图片
MyPanel panelBottom = new MyPanel(); //用来显示处理过后的图片
JLabel labelA = new JLabel();
JLabel labelQ = new JLabel();
JLabel labelC = new JLabel();
JLabel labelR = new JLabel();
JTextField txtA = new JTextField(); //输入A值
JTextField txtQ = new JTextField(); //输入Q值
JTextField txtC = new JTextField(); //输入C值
JTextField txtR = new JTextField(); //输入R值
JButton buttonOK = new JButton();
public MainFrame() //构造函数,初始化窗口
{
setTitle("维纳滤波显示位图");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 500);
this.getContentPane().setLayout(new BorderLayout());
labelA.setMinimumSize(new Dimension(30, 20));
labelA.setPreferredSize(new Dimension(30, 20));
labelA.setText("A:");
labelQ.setMinimumSize(new Dimension(30, 20));
labelQ.setPreferredSize(new Dimension(30, 20));
labelQ.setText("Q:");
labelC.setMinimumSize(new Dimension(30, 20));
labelC.setPreferredSize(new Dimension(30, 20));
labelC.setText("C:");
labelR.setMinimumSize(new Dimension(30, 20));
labelR.setPreferredSize(new Dimension(30, 20));
labelR.setText("R:");
txtA.setMinimumSize(new Dimension(40, 20));
txtA.setPreferredSize(new Dimension(40, 20));
txtQ.setMinimumSize(new Dimension(40, 20));
txtQ.setPreferredSize(new Dimension(40, 20));
txtC.setMinimumSize(new Dimension(40, 20));
txtC.setPreferredSize(new Dimension(40, 20));
txtR.setMinimumSize(new Dimension(40, 20));
txtR.setPreferredSize(new Dimension(40, 20));
buttonOK.setText("OK");
buttonOK.addActionListener(this); //为按钮添加事件监听
panelTop.add(labelA);
panelTop.add(txtA);
panelTop.add(labelQ);
panelTop.add(txtQ);
panelTop.add(labelC);
panelTop.add(txtC);
panelTop.add(labelR);
panelTop.add(txtR);
panelTop.add(buttonOK);
this.getContentPane().add(panelTop, BorderLayout.NORTH);
//刚开始显示两相同的图片,filter参数设置为false,表示不进行滤波
panelCenter.loadImage("1.bmp", false, 0, 0, 0, 0);
panelBottom.loadImage("1.bmp", false, 0, 0, 0, 0);
panelDown.setLayout(new GridLayout(0,1));
panelDown.add(panelCenter);
panelDown.add(panelBottom);
this.getContentPane().add(panelDown, BorderLayout.CENTER);
setVisible(true);
}
//响应按钮事件
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("OK"))
{
float a = Float.parseFloat(txtA.getText());
float q = Float.parseFloat(txtQ.getText());
float c = Float.parseFloat(txtC.getText());
float r = Float.parseFloat(txtR.getText());
//对图片进行滤波,并将滤波后的图片显示在下方
panelBottom.loadImage("1.bmp", true, a, q, c, r);
txtA.setText("");
txtQ.setText("");
txtC.setText("");
txtR.setText("");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -