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

📄 mainframe.java.bak

📁 维纳滤波
💻 BAK
字号:
/**
 * 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("PH02466U.bmp", false, 0, 0, 0, 0);
		panelBottom.loadImage("PH02466U.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("PH02466U.bmp.bmp", true, a, q, c, r);
			txtA.setText("");
			txtQ.setText("");
			txtC.setText("");
			txtR.setText("");
		}
	}
}

⌨️ 快捷键说明

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