Приложение качели панели инструментов - PullRequest
0 голосов
/ 07 сентября 2011

Мне нужно реализовать 4 функции в моем графическом интерфейсе.Функциональные возможности являются эксклюзивными.Каждая функция может иметь несколько команд, которые может выполнять пользователь.Все это должно быть представлено значками и кнопками только на панели инструментов.Я ищу пример и идеи для создания такого рода панели инструментов.

Ответы [ 2 ]

1 голос
/ 07 сентября 2011

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);
            }
        });
    }
}
1 голос
/ 07 сентября 2011

Взгляните на класс JToolBar, вот хорошее руководство от Oracle.

Oracle - Как использовать панели инструментов

...