Java中改变窗口图标,居中窗口,改变窗口背景

一、改变窗口图标

先将图片导入eclipse:

Import -> General -> File System -> 选择路径 ->选择想导入的图片即可

修改图标:

修改窗口图标的操作需要和设置窗口信息放在一个类中。

package menu;


import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;


public class OneMenu {
	public static void main(String[] args) {
		JFrame f = new JFrame("一级菜单");
		
            //修改图标
		Toolkit tk = Toolkit.getDefaultToolkit();  
            //获取图片 三种图片格式都可以  
		java.awt.Image img = tk.getImage("src\\menu\\123.jpg"); 
            // 给窗体设置图标
		f.setIconImage(img);  
		
		//设置窗口的位置和大小
		f.setBounds(500, 150, 400, 400);
		
		//设置布局为流式布局
		f.setLayout(new FlowLayout());
		
		//创建一个菜单栏(条)
		JMenuBar mb = new JMenuBar();
		
		//创建一个菜单
		JMenu m = new JMenu("文件");
		
		//创建一个菜单项
		JMenuItem mi = new JMenuItem("退出系统");
		
		//将菜单项加入到菜单,将菜单加入到菜单栏,将菜单栏加入窗口
		m.add(mi);
		mb.add(m);
		f.setJMenuBar(mb);
		
		//菜单项的内容
		mi.addActionListener(new ActionListener() {
			
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}
		});
		
		//关闭窗口
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		
		//显示窗口
		f.setVisible(true);
		
	}
}

图片为:

修改后图标为:

 

二、居中窗口

        //设置窗口的位置和大小
		f.setSize(400, 400);
		
		//获取工具对象
		Toolkit t = Toolkit.getDefaultToolkit();
		//获取屏幕长和宽
		Dimension d = t.getScreenSize();
		double screenwidth = d.getWidth();
		double screenhight = d.getHeight();
		
		//获取窗口长和宽
		int framewidth = f.getWidth();
		int framehight = f.getHeight();
		
		//计算窗口位置
		int width = (int)(screenwidth - framewidth)/2;
		int hight = (int)(screenhight - framehight)/2;
		f.setLocation(width, hight);






                //或者
                f.setLocationRelativeTo(null);

三、设置窗口背景

package menu;

import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;



class FrameDemo extends JFrame{
	public FrameDemo(){
			//创建窗口
			setTitle("多级窗口");
			
			String name = getTitle();
			
			
			//设置窗口位置和大小
			setBounds(500, 150, 400, 400);
			
			//设置布局为流式布局
			setLayout(new FlowLayout());
			
			//创建菜单栏
			JMenuBar mb = new JMenuBar();
			
			//创建菜单
			JMenu m = new JMenu("文件");
			JMenu mm = new JMenu("更改名称");
			
			//创建菜单项
			JMenuItem m2 = new JMenuItem("好好学习");
			JMenuItem m3 = new JMenuItem("天天向上");
			JMenuItem m4 = new JMenuItem("恢复标题");
			JMenuItem m5 = new JMenuItem("打开记事本");
			JMenuItem m6 = new JMenuItem("退出系统");
			
			//将菜单项加入到菜单,将菜单加入到菜单栏,将菜单栏加入窗口
			mm.add(m2);
			mm.add(m3);
			mm.add(m4);
			m.add(mm);
			m.add(m5);
			m.add(m6);
			mb.add(m);
			setJMenuBar(mb);
			
			
			/*改变窗口图标*/
			//获取工具对象
			Toolkit tk = Toolkit.getDefaultToolkit();  
	        //获取图片  三种图片格式都可以  
			java.awt.Image img = tk.getImage("src\\menu\\123.jpg");
			// 给窗体设置图
			setIconImage(img);  
			
			/*改变窗口背景*/
			Icon im = new ImageIcon("src\\menu\\1234.jpg");
			//将图片添加到JLable标签 
			JLabel jLabel = new JLabel(im);
			//设置标签的大小
			jLabel.setBounds(0,0, getWidth(),getHeight() );
			//将图片添加到窗口
			add(jLabel);
			
			
			//打开记事本
			m5.addActionListener(new ActionListener() {
				
				@Override
				public void actionPerformed(ActionEvent e) {
					Runtime r = Runtime.getRuntime();
					try {
						r.exec("notepad");
					} catch (IOException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
				}
			});
			
			//变成m2标题操作
			m2.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					setTitle(m2.getText());
				}
			});
			
			//变成m3标题操作
			m3.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					setTitle(m3.getText());
				}
			});
			
			//恢复标题操作
			m4.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					setTitle(name);
				}
			});
			
			//关闭窗口操作
			m6.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					System.exit(0);
				}
			});;
			
                //使窗口不能改变大小
			setResizable(false);

			//显示窗口
			setVisible(true);
			//关闭窗口
			setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
	}
}

public class MoreMenu {
	public static void main(String[] args) {
		new FrameDemo();
	}
}

显示:

  • 13
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值