2014-08-23 2 views
-2

Я понимаю, что вопрос задавался много раз, но на серьезной ноте. что является самым простым способом отключить первый элемент JComboBox на Java. У меня есть следующий код, и я хочу, чтобы отключить «Выберите государство», так что заставляет пользователя выбрать состояние, если они не то печатает пустую строкуКак отключить первый элемент на JComboBox

states = new JComboBox<String>(new String[] {"Select a State", 
     "AL","AK","AZ","AR","CA","CO","CT","DE","FL","GA", 
     "HI","ID","IL","IN","IA","KS","KY","LA","ME","MD", 
     "MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ", 
     "NM","NY","NC","ND","OH","OK","OR","PA","RI","SC", 
     "SD","TN","TX","UT","VT","VA","WA","WV","WI","WY"}); 
    states.setEditable(false); 
+0

Что вы пробовали? Пожалуйста, прочитайте [Как задать хороший вопрос?] (Http://stackoverflow.com/help/how-to-ask). – DavidPostill

ответ

0

Держите его просто в принципе вы можете просто использовать conditional заявление:

states.addItemListener(
     new ItemListener() { 
      @Override 
      public void itemStateChanged(ItemEvent e) { 

       // now there's nothing happen when we select the first item 
       if(states.getSelectedIndex()>0){ 
        System.out.println("YOU CLICK INDEX-"+states.getSelectedIndex()); 
       } 
      } 
     } 
     );         

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

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

public class ComboBoxDemo extends JFrame { 
    private JComboBox<String> states; 

public ComboBoxDemo() { 
    super("JComboBox Demo"); 
    states = new JComboBox<String>(new String[]{"Select a State", 
     "AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "FL", "GA", 
     "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", 
     "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", 
     "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", 
     "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY"}); 

    setLayout(new FlowLayout(FlowLayout.CENTER)); 
    add(states, BorderLayout.CENTER); 

    states.addItemListener(
    new ItemListener() { 
     @Override 
     public void itemStateChanged(ItemEvent e) { 

      // now there's nothing happen when we select the first item 
      if(states.getSelectedIndex()>0){ 
       System.out.println("YOU CLICK INDEX- "+states.getSelectedIndex()); 
      } 
     } 
    } 
    );      
} 

public static void main(String[] args) { 
    ComboBoxDemo g = new ComboBoxDemo(); 
    g.setVisible(true); 
    g.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    g.setBounds(100, 100, 300, 300); 
} 
} 
+0

вместо использования if (states.getSelectedIndex> 0). Я использовал ==. поэтому он предлагает пользователю диалоговое окно с предупреждением !. Прекрасно работает! – kakaday22

+0

Просто измените его в соответствии с вашим вкусом: P –

1

Отъезд Combo Box Prompt. Он отобразит сообщение, когда в поле со списком не будет выбран ни один элемент.

Смежные вопросы