2016-10-23 8 views
1

ユーザーがリストから選択できるようにしようとしていて、ユーザーが選択したオプションはテキスト領域に表示する必要がありますが、私はエラーが続いています:比類のない型:intと文字列

また、エラータイプが「int」から「string」であるというエラーが発生します。 "GUI"があなたのchoices配列の最初の値であるため、

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

    public class Lab4Part3 extends JFrame implements ListSelectionListener { 

    JList<String> list; 

     public Lab4Part3() { 

      JPanel panel = new JPanel(); 

      Container c = getContentPane(); 

      JPanel panel1 = new JPanel(); 

      JLabel new1Label = new JLabel ("Choose your fav subject"); 
    //create a list with 10 choices 
      String choices [] = {"GUI", "Maths", "Database", "Object Oriented", "Web Dev", "Networks", "Switching", "Routing", "accounting", "finance",}; 

      list = new JList<String>(choices); 
      list.addListSelectionListener(this); 
      JScrollPane pane = new JScrollPane(list); 
      panel1.add(new1Label); 
      panel1.add(list); 

      JPanel panel2 = new JPanel(); 
      JTextArea ta = new JTextArea(); 
      ta.setText("Response will appear here"); 
      panel2.add(ta); 

      c.add(panel1, BorderLayout.NORTH); 
      c.add(panel2, BorderLayout.SOUTH); 

      setSize(400,300); 
      setVisible(true); 


     } 

      public static void main (String args []) { 


      Lab4Part3 myFrame = new Lab4Part3(); 
     myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 


     } 


    public void valueChanged(ListSelectionEvent e) { 


    if (list.getSelectedIndex()==("GUI")) { 


      ta.setText("GUI"); 
    } 

    } 
    } 

答えて

0
if (list.getSelectedIndex()==("GUI")) { 

if (list.getSelectedIndex()==0) { 

に置き換える必要があります。

より明確な方法は、String値に選択インデックスを関連付けるMap<Integer,String>を使用することです。
このように、UIで選択肢の順序が変更された場合、リスナーはその処理で有効なままです。

+0

ありがとうございました! –

+0

Great :)答えを受け入れることを自由に感じてください:) – davidxxx

関連する問題