一、改变窗口图标
先将图片导入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();
}
}
显示: