how2j.cn

相关下载
文件名 文件大小
images.rar 42k

工具版本兼容问题
工具栏用于存放常用的按钮

本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频



4分25秒
本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)



步骤 1 : 工具栏   
步骤 2 : 给按钮设置提示信息   
步骤 3 : 禁止工具栏拖动   

步骤 1 :

工具栏

工具栏
package gui; import java.awt.BorderLayout; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JToolBar; public class TestGUI { public static void main(String[] args) { JFrame f = new JFrame("LoL"); f.setSize(400, 300); f.setLocation(200, 200); // 菜单 addMenu(f); // 工具栏 JToolBar tb = new JToolBar(); // 为工具栏增加按钮 JButton b1 = new JButton(new ImageIcon("e:/project/j2se/1.jpg")); JButton b2 = new JButton(new ImageIcon("e:/project/j2se/2.jpg")); JButton b3 = new JButton(new ImageIcon("e:/project/j2se/3.jpg")); JButton b4 = new JButton(new ImageIcon("e:/project/j2se/4.jpg")); JButton b5 = new JButton(new ImageIcon("e:/project/j2se/5.jpg")); JButton b6 = new JButton(new ImageIcon("e:/project/j2se/6.jpg")); tb.add(b1); tb.add(b2); tb.add(b3); tb.add(b4); tb.add(b5); tb.add(b6); // 把工具栏放在north的位置 f.setLayout(new BorderLayout()); f.add(tb, BorderLayout.NORTH); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } private static void addMenu(JFrame f) { JMenuBar mb = new JMenuBar(); JMenu mHero = new JMenu("英雄"); JMenu mItem = new JMenu("道具"); JMenu mWord = new JMenu("符文"); JMenu mSummon = new JMenu("召唤师"); JMenu mTalent = new JMenu("天赋树"); // 菜单项 mHero.add(new JMenuItem("近战-Warriar")); mHero.add(new JMenuItem("远程-Range")); mHero.add(new JMenuItem("物理-physical")); mHero.add(new JMenuItem("坦克-Tank")); mHero.add(new JMenuItem("法系-Mage")); mHero.add(new JMenuItem("辅助-Support")); mHero.add(new JMenuItem("打野-Jungle")); mHero.add(new JMenuItem("突进-Charge")); mHero.add(new JMenuItem("男性-Boy")); mHero.add(new JMenuItem("女性-Girl")); mb.add(mHero); mb.add(mItem); mb.add(mWord); mb.add(mSummon); mb.add(mTalent); f.setJMenuBar(mb); } }
步骤 2 :

给按钮设置提示信息

当鼠标放在按钮上的时候会出现提示
给按钮设置提示信息
package gui; import java.awt.BorderLayout; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JToolBar; public class TestGUI { public static void main(String[] args) { JFrame f = new JFrame("LoL"); f.setSize(400, 300); f.setLocation(200, 200); addMenu(f); JToolBar tb = new JToolBar(); JButton b1 = new JButton(new ImageIcon("e:/project/j2se/1.jpg")); JButton b2 = new JButton(new ImageIcon("e:/project/j2se/2.jpg")); JButton b3 = new JButton(new ImageIcon("e:/project/j2se/3.jpg")); JButton b4 = new JButton(new ImageIcon("e:/project/j2se/4.jpg")); JButton b5 = new JButton(new ImageIcon("e:/project/j2se/5.jpg")); JButton b6 = new JButton(new ImageIcon("e:/project/j2se/6.jpg")); tb.add(b1); tb.add(b2); tb.add(b3); tb.add(b4); tb.add(b5); tb.add(b6); // 给按钮设置提示信息 b1.setToolTipText("坑爹英雄"); // 把工具栏放在north的位置 f.setLayout(new BorderLayout()); f.add(tb, BorderLayout.NORTH); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } private static void addMenu(JFrame f) { JMenuBar mb = new JMenuBar(); JMenu mHero = new JMenu("英雄"); JMenu mItem = new JMenu("道具"); JMenu mWord = new JMenu("符文"); JMenu mSummon = new JMenu("召唤师"); JMenu mTalent = new JMenu("天赋树"); // 菜单项 mHero.add(new JMenuItem("近战-Warriar")); mHero.add(new JMenuItem("远程-Range")); mHero.add(new JMenuItem("物理-physical")); mHero.add(new JMenuItem("坦克-Tank")); mHero.add(new JMenuItem("法系-Mage")); mHero.add(new JMenuItem("辅助-Support")); mHero.add(new JMenuItem("打野-Jungle")); mHero.add(new JMenuItem("突进-Charge")); mHero.add(new JMenuItem("男性-Boy")); mHero.add(new JMenuItem("女性-Girl")); mb.add(mHero); mb.add(mItem); mb.add(mWord); mb.add(mSummon); mb.add(mTalent); f.setJMenuBar(mb); } }
步骤 3 :

禁止工具栏拖动

默认情况下 工具栏可以通过鼠标拖动

setFloatable(false);

可以禁止鼠标拖动功能
禁止工具栏拖动
package gui; import java.awt.BorderLayout; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JToolBar; public class TestGUI { public static void main(String[] args) { JFrame f = new JFrame("LoL"); f.setSize(400, 300); f.setLocation(200, 200); addMenu(f); JToolBar tb = new JToolBar(); JButton b1 = new JButton(new ImageIcon("e:/project/j2se/1.jpg")); JButton b2 = new JButton(new ImageIcon("e:/project/j2se/2.jpg")); JButton b3 = new JButton(new ImageIcon("e:/project/j2se/3.jpg")); JButton b4 = new JButton(new ImageIcon("e:/project/j2se/4.jpg")); JButton b5 = new JButton(new ImageIcon("e:/project/j2se/5.jpg")); JButton b6 = new JButton(new ImageIcon("e:/project/j2se/6.jpg")); tb.add(b1); tb.add(b2); tb.add(b3); tb.add(b4); tb.add(b5); tb.add(b6); b1.setToolTipText("坑爹英雄"); // 禁止工具栏拖动 tb.setFloatable(false); // 把工具栏放在north的位置 f.setLayout(new BorderLayout()); f.add(tb, BorderLayout.NORTH); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } private static void addMenu(JFrame f) { JMenuBar mb = new JMenuBar(); JMenu mHero = new JMenu("英雄"); JMenu mItem = new JMenu("道具"); JMenu mWord = new JMenu("符文"); JMenu mSummon = new JMenu("召唤师"); JMenu mTalent = new JMenu("天赋树"); // 菜单项 mHero.add(new JMenuItem("近战-Warriar")); mHero.add(new JMenuItem("远程-Range")); mHero.add(new JMenuItem("物理-physical")); mHero.add(new JMenuItem("坦克-Tank")); mHero.add(new JMenuItem("法系-Mage")); mHero.add(new JMenuItem("辅助-Support")); mHero.add(new JMenuItem("打野-Jungle")); mHero.add(new JMenuItem("突进-Charge")); mHero.add(new JMenuItem("男性-Boy")); mHero.add(new JMenuItem("女性-Girl")); mb.add(mHero); mb.add(mItem); mb.add(mWord); mb.add(mSummon); mb.add(mTalent); f.setJMenuBar(mb); } }


HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2017-06-19 步骤一中工具栏的图标没有显示出来图片
chenhuozhi



我按照你写的代码写了一遍,发现工具栏的按钮没有显示出图片来,这是怎么回事?
package gui;

import java.awt.BorderLayout;

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

public class TestGonghulan {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		JFrame f=new JFrame("LoL");	
		f.setSize(400, 300);
		f.setLocation(200, 200);
		
		addMenu(f);
		
		JToolBar tb=new JToolBar();
		
		JButton b1=new JButton(new ImageIcon("E:/Users/Administrato/Workspaces/MyEclipse 8.5/How2J/1.jpg"));
		JButton b2=new JButton(new ImageIcon("E:/Users/Administrato/Workspaces/MyEclipse 8.5/How2J/2.jpg"));
		JButton b3=new JButton(new ImageIcon("E:/Users/Administrato/Workspaces/MyEclipse 8.5/How2J/3.jpg"));
		JButton b4=new JButton(new ImageIcon("E:/Users/Administrato/Workspaces/MyEclipse 8.5/How2J/4.jpg"));
		JButton b5=new JButton(new ImageIcon("E:/Users/Administrato/Workspaces/MyEclipse 8.5/How2J/5.jpg"));
		JButton b6=new JButton(new ImageIcon("E:/Users/Administrato/Workspaces/MyEclipse 8.5/How2J/6.jpg"));
		
		tb.add(b1);
		tb.add(b2);
		tb.add(b3);
		tb.add(b4);
		tb.add(b5);
		tb.add(b6);
		
		//将工具栏放在上北的位置
		f.setLayout(new BorderLayout());
		f.getContentPane().add(tb, BorderLayout.NORTH);
		
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setVisible(true);
		
	}
	
	public static void addMenu(JFrame f){
		JMenuBar mb=new JMenuBar();
		
		JMenu mHero=new JMenu("英雄");
		JMenu mItem = new JMenu("道具");
        JMenu mWord = new JMenu("符文");
        JMenu mSummon = new JMenu("召唤师");
        JMenu mTalent = new JMenu("天赋树");
        
        mb.add(mHero);
        mb.add(mItem);
        mb.add(mWord);
        mb.add(mSummon);
        mb.add(mTalent);
        
        mHero.add(new JMenuItem("近战-Warriar"));
        mHero.add(new JMenuItem("远程-Range"));
        mHero.add(new JMenuItem("物理-physical"));
        mHero.add(new JMenuItem("坦克-Tank"));
        mHero.add(new JMenuItem("法系-Mage"));
        mHero.add(new JMenuItem("辅助-Support"));
        mHero.add(new JMenuItem("打野-Jungle"));
        mHero.add(new JMenuItem("突进-Charge"));
        mHero.add(new JMenuItem("男性-Boy"));
        mHero.add(new JMenuItem("女性-Girl"));
        
        f.setJMenuBar(mb);
	}
}

							


2 个答案

how2j 答案时间:2017-06-20
嗯,好像在QQ群里问过了嘛

chenhuozhi 答案时间:2017-06-19
找到答案了,原来是图片要放在工程目录下,把路径设置错了,导致图片没有显示出来




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2017-04-05 按钮没有提示信息
baymax04



按钮没有提示信息
package menu;

import java.awt.BorderLayout;

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

public class ToolBar {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		JFrame frame=new JFrame("LOL");
		frame.setSize(400, 300);
		frame.setLocation(200, 200);
		//菜单
		addMenu(frame);
		//工具栏
		JToolBar tBar=new JToolBar();
		//为工具栏添加按钮
//		JButton b=new JButton(new ImageIcon("src\\images\\1.jpg"));
//		tBar.add(b);
		tBar.add(new JButton(new ImageIcon("src\\images\\1.jpg")));
		tBar.add(new JButton(new ImageIcon("src\\images\\2.jpg")));
		tBar.add(new JButton(new ImageIcon("src\\images\\3.jpg")));
		tBar.add(new JButton(new ImageIcon("src\\images\\4.jpg")));
		tBar.add(new JButton(new ImageIcon("src\\images\\5.jpg")));
		tBar.add(new JButton(new ImageIcon("src\\images\\6.jpg")));
        
		
		//给按钮设置提示信息
//		b.setToolTipText("坑爹游戏!!");
		new JButton(new ImageIcon("src\\images\\1.jpg")).setToolTipText("坑爹游戏!!");
		
		//把工具栏放到north位置
		frame.setLayout(new BorderLayout());
		frame.add(tBar,BorderLayout.NORTH);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
		
	}

	private static void addMenu(JFrame frame) {
		// TODO Auto-generated method stub
		//菜单栏
		JMenuBar mBar=new JMenuBar();
		//菜单
		JMenu mHero = new JMenu("英雄");
        JMenu mItem = new JMenu("道具");
        JMenu mWord = new JMenu("符文");
        JMenu mSummon = new JMenu("召唤师");
        JMenu mTalent = new JMenu("天赋树");
		//菜单项
        mHero.add(new JMenuItem("近战-Warriar"));
        mHero.add(new JMenuItem("远程-Range"));
        mHero.add(new JMenuItem("物理-physical"));
        mHero.add(new JMenuItem("坦克-Tank"));
        mHero.add(new JMenuItem("法系-Mage"));
        mHero.add(new JMenuItem("辅助-Support"));
        mHero.add(new JMenuItem("打野-Jungle"));
        mHero.add(new JMenuItem("突进-Charge"));
        mHero.addSeparator();
        mHero.add(new JMenuItem("男性-Boy"));
        mHero.add(new JMenuItem("女性-Girl"));
		//把菜单放到菜单栏中
		mBar.add(mHero);
		mBar.add(mItem);
		mBar.add(mWord);
		mBar.add(mSummon);
		mBar.add(mTalent);
		//把菜单栏放到frame中
		frame.setJMenuBar(mBar);
	}

}

							


2 个答案

baymax04 答案时间:2017-04-05
孤魂野鬼、哈哈 提示信息按钮没有添加到容器、、、、 现在懂了为啥没有提示信息了

how2j 答案时间:2017-04-05
你加了提示信息的这个按钮,放在容器里去了吗? 还是是一个在外游荡的孤魂野鬼?




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到









提问之前请登陆
关于 JAVA 中级-图形界面-工具栏 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 620943819
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: http://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图