Nano Hash - криптовалюты, майнинг, программирование

Как добавить поле со списком, когда флажок установлен?

Я пытаюсь, чтобы прослушиватель действий добавил поле со списком на панель управления, только когда установлен флажок. Например, проект, над которым я сейчас работаю, — это форма заказа футболки. Флажок для «Графика» доступен. Когда установлен флажок «Монограмма», должно появиться поле со списком «Графический стиль». Как я могу это сделать? Ничто из того, что я пробовал до сих пор, не сработало.

Вот мой метод создания флажка

public JPanel createGraphicCheckBox()
{
    graphicCheck = new JCheckBox("Graphic");

    ActionListener listener = new MyListener();
    graphicCheck.addActionListener(listener);

    JPanel panel = new JPanel();

    //add check box to panel
    panel.add(graphicCheck);

    panel.setBorder(new TitledBorder(new EtchedBorder(), "Graphic"));

    return panel;
}

Вот мой метод создания поля со списком

public JPanel createGraphSelectComboBox()
{
    graphSelectBox = new JComboBox();

    //Fills graphics combo box
    graphSelectBox.addItem("Select Graphic");
    graphSelectBox.addItem("AB20");
    graphSelectBox.addItem("JM17");
    graphSelectBox.addItem("PJ23");
    graphSelectBox.addItem("TR16");
    graphSelectBox.addItem("JK52");
    graphSelectBox.setEditable(true);

    JPanel panel = new JPanel();

    panel.add(graphSelectBox);

    return panel;
}

А вот мой класс для моего слушателя

class MyListener implementes ActionListener {
    public void actionPerformed(ActionEvent e)
    {
      if(e.getSource() == monoCheck)
        {
            if(monoCheck.isSelected())
            {
                JPanel comboBoxPanel5 = createGraphSelectComboBox();

                controlPanel.add(comboBoxPanel5);

                revalidate();
            }
        }
     }
 }

Спасибо вам, ребята, за всю помощь, которую вы оказываете!


  • А что происходит прямо сейчас? Почему вы оборачиваете свой список в дополнительную панель? Это может быть проблемой, поскольку для этой панели не установлен менеджер компоновки, и никто не знает, что произойдет. Вы пытались удалить эту дополнительную панель? 18.11.2014
  • tools пишется неправильно, возможно, проблема не в этом 18.11.2014
  • вы проверяете e.getSource() == monoCheck, а флажок называется graphicCheck? 18.11.2014

Ответы:


1

Вы можете отключить JCheckbox при запуске программы, а затем вы можете установить actionlistener над флажком «Монограмма», например, Mouse Clicked или Mouse Pressed. Затем в этом прослушивателе действий вы можете включить свой JCheckbox. Код для отключения и включения JCheckbox:

Включить:

your_checkbox.setEnabled(true);

Запрещать:

your_checkbox.setEnabled(false);

Пример:

if(monogram_checkbox.isSelected()){
    your_checkbox.setEnabled(true);
} else {
    your_checkbox.setEnabled(false);
}
01.12.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..