工具栏摆动应用

时间:2011-09-07 11:34:10

标签: swing toolbar

我必须在GUI上实现4个功能。功能是独家的。每个功能都可以有多个用户可以执行的命令。所有这些必须仅在工具栏中用图标和按钮表示。我正在寻找创建这种工具栏的示例和想法。

2 个答案:

答案 0 :(得分:1)

查看课程JToolBar,这是Oracle的一个很好的教程。

Oracle - How to Use Toolbars

答案 1 :(得分:1)

Multi-Tool Bar

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class MultiToolBar {

    private static void addButtons(Container c, int i, JButton[] b) {
        int startAt = (i==0 ? 0 : i*3);
        int endAt = startAt+3;
        for (int ii = startAt; ii<endAt; ii++) {
            c.add(b[ii]);
        }
        c.validate();
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater( new Runnable() {
            public void run() {
                final JToolBar tb = new JToolBar();
                final JButton[] buttons = new JButton[12];
                for (int ii=0; ii<buttons.length; ii++) {
                    buttons[ii] = new JButton("Button " + (ii+1));
                }

                String[] functions = new String[4];
                for (int ii=0; ii<functions.length; ii++) {
                    functions[ii] = "Function " + (ii+1);
                }

                final JComboBox cb = new JComboBox(functions);
                tb.add(cb);
                cb.addItemListener(new ItemListener(){
                    public void itemStateChanged(ItemEvent lse) {
                        Component[] components = tb.getComponents();
                        for (Component component : components) {
                            if (!(component instanceof JComboBox)) {
                                tb.remove(component);
                            }
                        }
                        int index = cb.getSelectedIndex();
                        addButtons(tb, index, buttons);
                    }
                });
                cb.setSelectedIndex(3);

                JOptionPane.showMessageDialog(null, tb);
            }
        });
    }
}