关于java中JToolBar或者其他工具栏的用法

我在用java设计用户界面时。一个flame里用了container,container中用了borderlayout,其中北方给了一个JToolBar。这个JToolB... 我在用java设计用户界面时。一个flame里用了container,container中用了borderlayout,其中北方给了一个JToolBar。这个JToolBar的setFloatable(true),可以拖动,拖动出来之后右上角有个叉,点叉之后它又回去了。现在我点叉之后不想让它回去,想让它关闭,还有想在这个JToolBar和上面的JMenuBar之间有一条分割线,应该怎么做,请高手指教! 展开
 我来答
hanzsim
2009-11-21 · TA获得超过1540个赞
知道小有建树答主
回答量:922
采纳率:0%
帮助的人:1094万
展开全部
JToolBar加边框后,原有的拖动手柄就没了,只好改为给菜单栏加个边框了。
下面的程序实现了你的要求,菜单栏有一个复选菜单控制工具栏的显示的。
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.border.*;
public class JToolBarTest extends JFrame{
JToolBar tbrTest;
JButton btnTest;
JMenuBar mbrTest;
JMenu mnuView;
JCheckBoxMenuItem mnuViewToolBar;
JTextArea txtEditor;
public JToolBarTest(){
btnTest=new JButton(new ImageIcon("Bold.gif"));
tbrTest=new JToolBar();
tbrTest.add(btnTest);
tbrTest.addAncestorListener(new AncestorListener(){
private WindowListener[] oldListeners;
private Window ancestorWindow;
public void ancestorAdded(AncestorEvent e){
ancestorWindow=SwingUtilities.getWindowAncestor((Component)(e.getSource()));
if(ancestorWindow!=JToolBarTest.this){
oldListeners=ancestorWindow.getWindowListeners();
for(WindowListener listener:oldListeners){
ancestorWindow.removeWindowListener(listener);
}
ancestorWindow.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
mnuViewToolBar.setSelected(false);
ancestorWindow.setVisible(false);
}
});
}
};
public void ancestorMoved(AncestorEvent e){}
public void ancestorRemoved(AncestorEvent e){}
});
add(tbrTest,BorderLayout.NORTH);
mnuViewToolBar=new JCheckBoxMenuItem("工具栏(T)",true);
mnuViewToolBar.setMnemonic('T');
mnuViewToolBar.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
Window ancestorWindow=SwingUtilities.getWindowAncestor(tbrTest);
if(ancestorWindow!=JToolBarTest.this){
ancestorWindow.setVisible(e.getStateChange()==ItemEvent.SELECTED);
}
else{
tbrTest.setVisible(e.getStateChange()==ItemEvent.SELECTED);
}
}
});
mnuView=new JMenu("视图(V)");
mnuView.setMnemonic('V');
mnuView.add(mnuViewToolBar);
mbrTest=new JMenuBar();
mbrTest.setBorder(new EtchedBorder());
mbrTest.add(mnuView);
setJMenuBar(mbrTest);
txtEditor=new JTextArea();
add(txtEditor);
setSize(640,480);
}
public static void main(String[] args){
new JToolBarTest().setVisible(true);
}
}
niyidusk
2015-09-06 · 超过16用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:65.7万
展开全部
JToolBar 提供了一个用来显示常用的 Action 或控件的组件。
对于大多数的外观,用户可以将工具栏拖到单独的窗口中(除非 floatable 属性被设置为 false)。为了正确执行拖动,建议将 JToolBar 实例添加到容器的四“边”中的一边(其中容器的布局管理器为BorderLayout),并且不在其他四“边”中添加任何子级。
JToolBar()
创建新的工具栏;默认的方向为 HORIZONTAL。
JToolBar(int orientation)
创建具有指定 orientation 的新工具栏。
JToolBar(String name)
创建一个具有指定 name 的新工具栏。
JToolBar(String name, int orientation)
创建一个具有指定 name 和 orientation 的新工具栏。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
daay1986
2009-11-20 · TA获得超过6018个赞
知道大有可为答主
回答量:2208
采纳率:0%
帮助的人:1475万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wybby
2009-11-20
知道答主
回答量:50
采纳率:0%
帮助的人:18.2万
展开全部
好像做不到
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式