1 JToolBar: 工具栏
工具栏提供了一个用来显示常用按钮和操作的组件。它可以把任意类型的组件附加到工具条上,但是通常是增加按钮。
与 JMenuBar 不一样,JToolBar 对象可以直接被添加到容器中。
1.1 JToolBar 构造方法
JToolBar() 创建新的工具栏,默认的方向为 HORIZONTAL
JToolBar(int orientation) 创建具有指定 orientation 的新工具栏
JToolBar(String name) 创建一个具有指定 name 的新工具栏
JToolBar(String name,int orientation) 创建一个具有指定 name 和 orientation 的新工具栏
1.2 JToolBar 常用方法
add(Action a) 添加一个指派动作的新的 JButton
addSeparator() 将默认大小的分隔符添加到工具栏的末尾
addSeparator(Dimension size) 将指定大小的分隔符添加到工具栏的末尾
getComponentAtIndex(int i) 返回指定索引位置的组件
getComponentIndex(Component c) 返回指定组件的索引
getMargin() 返回工具栏边框和它的按钮之间的空白
getOrientation() 返回工具栏的当前方向
isFloatable() 获取 floatable 属性
isRollover() 返回 rollover 状态
setBorderPainted(boolean b) 设置 borderPainted 属性,如果需要绘制边框,则此属性为 true
setFloatable(boolean b) 设置 floatable 属性,如果要移动工具栏,此属性必须设置为 true
setLayout(LayoutManager mgr) 设置此容器的布局管理器
setMargin(Insets m) 设置工具栏边框和它的按钮之间的空白
setOrientation(int o) 设置工具栏的方向
setRollover(boolean rollover) 设置此工具栏的 rollover 状态
1.3 示例
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JToolBar;
public class ToolBarDemo extends JPanel implements ActionListener
{
protected JTextArea textArea;
protected String newline="\n";
static final private String OPEN="OPEN";
static final private String SAVE="SAVE";
static final private String NEW="NEW";
protected void displayResult(String actionDescription)
{
textArea.append(actionDescription+newline);
}
public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame=new JFrame("工具栏");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ToolBarDemo newContentPane=new ToolBarDemo();
newContentPane.setOpaque(true);
frame.setContentPane(newContentPane);
frame.pack();
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e)
{
}
public ToolBarDemo()
{
super(new BorderLayout());
JToolBar toolBar=new JToolBar();
addButtons(toolBar);
textArea=new JTextArea(15, 30);
textArea.setEditable(false);
JScrollPane scrollPane=new JScrollPane(textArea);
setPreferredSize(new Dimension(450, 110));
add(toolBar,BorderLayout.PAGE_START);
add(scrollPane,BorderLayout.CENTER);
}
protected void addButtons(JToolBar toolBar)
{
JButton button=null;
button=makeNavigationButton("new1",NEW,"新建一个文件","新建");
toolBar.add(button);
button=makeNavigationButton("open1",OPEN,"打开一个文件","打开");
toolBar.add(button);
button=makeNavigationButton("save1",SAVE,"保存当前文件","保存");
toolBar.add(button);
}
protected JButton makeNavigationButton(String imageName,String actionCommand,String toolTipText,String altText)
{
String imgLocation=imageName+".jpg";
URL imageURL=ToolBarDemo.class.getResource(imgLocation);
JButton button=new JButton();
button.setActionCommand(actionCommand);
button.setToolTipText(toolTipText);
button.addActionListener(this);
if(imageURL!=null)
{
button.setIcon(new ImageIcon(imageURL));
}
else
{
button.setText(altText);
System.err.println("Resource not found: "+imgLocation);
}
return button;
}
}
1.4 运行效果
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/71b5e55deef94279ec770ef22982642e.png)