как изменить пользовательский интерфейс в зависимости от выбора поля со списком

В диалоговом окне мне нужно отобразить одну группу элементов управления, если какая-то комбо проверена, а другая группа элементов управления в противном случае. Т.е. мне нужно 2 слоя, и мне нужно переключаться между ними, когда combo проверяется / не проверяется. Как я могу это сделать?

благодаря

One Solution collect form web for “как изменить пользовательский интерфейс в зависимости от выбора поля со списком”

CardLayout хорошо работает для этого, как предлагается ниже.

введите описание изображения здесь

 import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; /** @see http://stackoverflow.com/questions/6432170 */ public class CardPanel extends JPanel { private static final Random random = new Random(); private static final JPanel cards = new JPanel(new CardLayout()); private static final JComboBox combo = new JComboBox(); private final String name; public CardPanel(String name) { this.name = name; this.setPreferredSize(new Dimension(320, 240)); this.setBackground(new Color(random.nextInt())); this.add(new JLabel(name)); } @Override public String toString() { return name; } public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { create(); } }); } private static void create() { JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); for (int i = 1; i < 9; i++) { CardPanel p = new CardPanel("Panel " + String.valueOf(i)); combo.addItem(p); cards.add(p, p.toString()); } JPanel control = new JPanel(); combo.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JComboBox jcb = (JComboBox) e.getSource(); CardLayout cl = (CardLayout) cards.getLayout(); cl.show(cards, jcb.getSelectedItem().toString()); } }); control.add(combo); f.add(cards, BorderLayout.CENTER); f.add(control, BorderLayout.SOUTH); f.pack(); f.setLocationRelativeTo(null); f.setVisible(true); } } 
  • Swing vs JavaFx для настольных приложений
  • Обновление пользовательского интерфейса из streamа
  • Как установить выходной stream в TextArea
  • Как сделать AWT Button () и использовать ImageIcon (), Icon ()?
  • Обновление пользовательского интерфейса Android с помощью streamов
  • JButton ActionListener - обновление GUI только после нажатия JButton
  • Как получить доступ к переменным из разных classов в tkinter?
  • GUI работает со скоростью 30 кадров в секунду?
  • SwingWorker, Thread.sleep () или javax.swing.timer? Мне нужно «вставить паузу»,
  • Как создать RecyclerView с несколькими типами просмотра?
  • Мероприятия по событиям в саперах
  • Interesting Posts

    DMI 2.0 против 8.0 GT / s QPI?

    Экспорт закладок Firefox как отдельный .URL при сохранении временных меток

    Изменить масштаб исключения брандмауэра для совместного использования файлов и принтеров в Windows Vista

    Наблюдение за устаревшей инструкцией по x86 с самомодифицируемым кодом

    Ярлык клавиатуры для перемещения окна на другой экран

    Как различать разные запущенные экземпляры Firefox?

    Сколько чисел ниже N являются взаимными ошибками до N?

    boost asio async_write: как не чередовать вызовы async_write?

    VIM – Как сопоставить Shift-Enter

    Разблокировать блокируемый объем из командной строки?

    Почему jQuery не использует requestAnimationFrame?

    Как сделать взаимодействие между виртуальными машинами в VirtualBox?

    android: веб-просмотр внутри диалога или всплывающее окно

    Почему я не могу заблокировать Facebook, используя / etc / hosts в Mountain Lion (OS X)?

    Мое соединение с сигналом / слотом не работает

    Давайте будем гением компьютера.