庞玉栋个人博客、人生苦短-我用Python

科研管理系统--ResAbout 关于界面代码设计

发布时间:8年前热度: 900 ℃评论数:
package view;

import java.awt.AWTEvent;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.Insets;
import java.awt.MediaTracker;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;
import java.net.URLClassLoader;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

import com.jnzj.common.Commom;

public class ResAbout extends JFrame implements ActionListener{
	Image icon;
	ImageIcon banner;
	JLabel jLabel;
	JLabel jLabel2;
	JLabel jLabel3;
	JLabel jLabel4;
	JLabel jLabel5;
	JPanel jPanel;
	JPanel jPanel2;
	JPanel jPanel3;
	JButton jButton;
	private GridBagConstraints girdBagCon;
	private GridBagLayout girdBag=new GridBagLayout();
	public ResAbout() {
		// TODO Auto-generated constructor stub
		this.setLayout(new BorderLayout());//边框布局
		//enableEvents(AWTEvent.WINDOW_EVENT_MASK);
		//添加框架的关闭时间处理2
		//this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//窗口自适应大小 使窗体能正好显示里面的所有控件
		this.pack();
		//设置框架的大小
		this.setSize(500,400);
		//设置窗体的标题
		this.setTitle("关于");
		//调用自定义的方法GetImage() ,获取图标文件
		icon=getImage("icon.png");
		//设置窗体图标
		this.setIconImage(icon);
		//设置不能调整窗体的大小
		this.setResizable(false);
		//获取屏幕大小
		Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
		//获取当前项目的窗体大小
		Dimension frameSize=this.getSize();
		//如果项目窗体高>屏幕高,用屏幕高设置项目窗体高
		if (frameSize.height>screenSize.height) {
			frameSize.height=screenSize.height;
		}
		if (frameSize.width>screenSize.width) {
			frameSize.width=screenSize.width;
		}
		//设置窗体起始显示位置 居中显示
		this.setLocation((screenSize.width-frameSize.width)/2,
		(screenSize.height-frameSize.height)/2);
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
				| UnsupportedLookAndFeelException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		try {
			top();
			central();
			down();
			addListener();//监听
			this.setVisible(true);
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		
		
	}
	private void addListener() {
		// TODO Auto-generated method stub
		jButton.addActionListener(this);
		
	}
	public void top() {
		jPanel=new JPanel();
		jPanel.setLayout(girdBag);
		jLabel=new JLabel("1.科研管理系统V1.0\t");
		jLabel.setFont(new Font("Dialog", 0, 12));
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=0;
		girdBagCon.gridy=1;
		//外部填充 4个参数 top,left,bottom,right
		//既外部间距
		//girdBagCon.insets=new Insets(0, 10, 10, 1);
		girdBag.setConstraints(jLabel, girdBagCon);

		jLabel2=new JLabel("2.版权归2017doft公司所有 翻录必究");
		jLabel2.setFont(new Font("Dialog", 0, 12));
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=0;
		girdBagCon.gridy=2;
		//外部填充 4个参数 top,left,bottom,right
		//既外部间距
		//girdBagCon.insets=new Insets(0, 10, 10, 1);
		girdBag.setConstraints(jLabel2, girdBagCon);
		
		jLabel3=new JLabel("3.联系方式:");
		jLabel3.setFont(new Font("Dialog", 0, 12));
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=0;
		girdBagCon.gridy=3;
		//外部填充 4个参数 top,left,bottom,right
		//既外部间距
		//girdBagCon.insets=new Insets(0, 10, 10, 1);
		girdBag.setConstraints(jLabel3, girdBagCon);
		
		jLabel4=new JLabel("4.我们的口号是:代码演绎人生 算法助推梦想");
		jLabel4.setFont(new Font("Dialog", 0, 12));
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=0;
		girdBagCon.gridy=4;
		//外部填充 4个参数 top,left,bottom,right
		//既外部间距
		//girdBagCon.insets=new Insets(0, 10, 10, 1);
		girdBag.setConstraints(jLabel4, girdBagCon);
		jPanel.add(jLabel);
		jPanel.add(jLabel);
		jPanel.add(jLabel2);
		jPanel.add(jLabel3);
		jPanel.add(jLabel4);	
		this.add(jPanel,BorderLayout.NORTH);
		
	}
	public void central() {
		jPanel2=new JPanel();

		banner=new ImageIcon("res/image.png");
		jLabel5=new JLabel(banner);
		jPanel2.add(jLabel5);
		this.add(jPanel2,BorderLayout.CENTER);
	}
	public void down() {
		jPanel3=new JPanel();
		this.add(jPanel3,BorderLayout.SOUTH);
		jButton=new JButton("关闭");
		jPanel3.add(jButton);
	}
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		Object object=e.getSource();
		if (object==jButton) {
			this.setVisible(false);
		}
		
	}

	/**   * 通过给定的文件名获得图像   */
	
	Image getImage(String filename){ 
		//URLClassLoader--用于从指向 jar文件和目录的 URL 的搜索路径加载类和资源。
		URLClassLoader urlLoader=(URLClassLoader) this.getClass().getClassLoader(); 
		
		URL  url=null;   
		Image image=null;
		url=urlLoader.findResource(filename); 
		image=Toolkit.getDefaultToolkit().getImage(url); 
		MediaTracker mediaTracker=new MediaTracker(this); 
		 try { 
			 mediaTracker.addImage(image, 0); 
			 mediaTracker.waitForID(0); 
		 }catch (InterruptedException _ex){
			 image=null;
		 }
		 if (mediaTracker.isErrorID(0)) {
			 image=null;
		 }
		 return image;
	}
}

代码,设计

手机扫码访问