当前位置: 技术问答>java相关
请教关于Toolbar的问题!
来源: 互联网 发布时间:2015-08-30
本文导语: 我在JPanel上加了一个JToolbar但是运行时发现当我用鼠标拖动的时候,Toolbar不能自动吸附JPanel边框,请问如何实现这一功能? 谢谢! | 请检查两点: 1。JToolbar的setFloatable()方法是否为true; 2。放...
我在JPanel上加了一个JToolbar但是运行时发现当我用鼠标拖动的时候,Toolbar不能自动吸附JPanel边框,请问如何实现这一功能?
谢谢!
谢谢!
|
请检查两点:
1。JToolbar的setFloatable()方法是否为true;
2。放置JToolBar的容器(它的parent)的layout是否为BorderLayout.
1。JToolbar的setFloatable()方法是否为true;
2。放置JToolBar的容器(它的parent)的layout是否为BorderLayout.
|
这里有个例子:
import java.awt.*;
import java.awt.event.*;
import java.beans.*;
import javax.swing.*;
public class ToolBarTest
{ public static void main(String[] args)
{ JFrame frame = new ToolBarFrame();
frame.show();
}
}
/* the color action sets the background of its target to a
given color
*/
class ColorAction extends AbstractAction
{ public ColorAction(String name, Icon icon,
Color c, Component t)
{ putValue(Action.NAME, name);
putValue(Action.SMALL_ICON, icon);
putValue(Action.SHORT_DESCRIPTION, name + " background");
putValue("Color", c);
target = t;
}
public void actionPerformed(ActionEvent evt)
{ Color c = (Color)getValue("Color");
target.setBackground(c);
target.repaint();
}
private Component target;
}
/* the tool bar button is a button with an icon and no text
suitable for addition into a tool bar. The tool tip is set
to the short description of the action, or to the name
if the short description is not available
*/
class ToolBarButton extends JButton
{ public ToolBarButton(Action a)
{ super((Icon)a.getValue(Action.SMALL_ICON));
String toolTip
= (String)a.getValue(Action.SHORT_DESCRIPTION);
if (toolTip == null)
toolTip = (String)a.getValue(Action.NAME);
if (toolTip != null)
setToolTipText(toolTip);
addActionListener(a);
}
}
class ToolBarFrame extends JFrame
{ public ToolBarFrame()
{ setTitle("ToolBarTest");
setSize(300, 200);
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
} );
// add a panel for color change
Container contentPane = getContentPane();
JPanel panel = new JPanel();
contentPane.add(panel, "Center");
// set up actions
Action blueAction = new ColorAction("Blue",
new ImageIcon("blue-ball.gif"),
Color.blue, panel);
Action yellowAction = new ColorAction("Yellow",
new ImageIcon("yellow-ball.gif"),
Color.yellow, panel);
Action redAction = new ColorAction("Red",
new ImageIcon("red-ball.gif"),
Color.red, panel);
Action exitAction
= new AbstractAction("Exit", new ImageIcon("exit.gif"))
{ public void actionPerformed(ActionEvent event)
{ System.exit(0);
}
};
// populate tool bar
JToolBar bar = new JToolBar();
bar.add(new ToolBarButton(blueAction));
bar.add(new ToolBarButton(yellowAction));
bar.add(new ToolBarButton(redAction));
bar.addSeparator();
bar.add(new ToolBarButton(exitAction));
contentPane.add(bar, "North");
// populate menu
JMenu menu = new JMenu("Color");
menu.add(yellowAction);
menu.add(blueAction);
menu.add(redAction);
menu.add(exitAction);
JMenuBar menuBar = new JMenuBar();
menuBar.add(menu);
setJMenuBar(menuBar);
}
}
import java.awt.*;
import java.awt.event.*;
import java.beans.*;
import javax.swing.*;
public class ToolBarTest
{ public static void main(String[] args)
{ JFrame frame = new ToolBarFrame();
frame.show();
}
}
/* the color action sets the background of its target to a
given color
*/
class ColorAction extends AbstractAction
{ public ColorAction(String name, Icon icon,
Color c, Component t)
{ putValue(Action.NAME, name);
putValue(Action.SMALL_ICON, icon);
putValue(Action.SHORT_DESCRIPTION, name + " background");
putValue("Color", c);
target = t;
}
public void actionPerformed(ActionEvent evt)
{ Color c = (Color)getValue("Color");
target.setBackground(c);
target.repaint();
}
private Component target;
}
/* the tool bar button is a button with an icon and no text
suitable for addition into a tool bar. The tool tip is set
to the short description of the action, or to the name
if the short description is not available
*/
class ToolBarButton extends JButton
{ public ToolBarButton(Action a)
{ super((Icon)a.getValue(Action.SMALL_ICON));
String toolTip
= (String)a.getValue(Action.SHORT_DESCRIPTION);
if (toolTip == null)
toolTip = (String)a.getValue(Action.NAME);
if (toolTip != null)
setToolTipText(toolTip);
addActionListener(a);
}
}
class ToolBarFrame extends JFrame
{ public ToolBarFrame()
{ setTitle("ToolBarTest");
setSize(300, 200);
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
} );
// add a panel for color change
Container contentPane = getContentPane();
JPanel panel = new JPanel();
contentPane.add(panel, "Center");
// set up actions
Action blueAction = new ColorAction("Blue",
new ImageIcon("blue-ball.gif"),
Color.blue, panel);
Action yellowAction = new ColorAction("Yellow",
new ImageIcon("yellow-ball.gif"),
Color.yellow, panel);
Action redAction = new ColorAction("Red",
new ImageIcon("red-ball.gif"),
Color.red, panel);
Action exitAction
= new AbstractAction("Exit", new ImageIcon("exit.gif"))
{ public void actionPerformed(ActionEvent event)
{ System.exit(0);
}
};
// populate tool bar
JToolBar bar = new JToolBar();
bar.add(new ToolBarButton(blueAction));
bar.add(new ToolBarButton(yellowAction));
bar.add(new ToolBarButton(redAction));
bar.addSeparator();
bar.add(new ToolBarButton(exitAction));
contentPane.add(bar, "North");
// populate menu
JMenu menu = new JMenu("Color");
menu.add(yellowAction);
menu.add(blueAction);
menu.add(redAction);
menu.add(exitAction);
JMenuBar menuBar = new JMenuBar();
menuBar.add(menu);
setJMenuBar(menuBar);
}
}
|
不能自动吸附JPanel边框是指什么?
试试这个,看看是不是你要的效果:
jToolBar1.setFloatable(false);
试试这个,看看是不是你要的效果:
jToolBar1.setFloatable(false);