2016-07-13 4 views
-2

하나의 클래스에서 arraylist를 만들었고 JButton을 클릭하고 다른 패널과 다른 클래스로 전환 한 후 액세스하고 난수를 생성 할 수 있기를 원합니다. 어떻게해야합니까? 내가하는 JButton의 액션 리스너에다른 클래스에서 ArrayList에 액세스하려면 어떻게해야합니까?

System.out.println(hiraganaArray.get(r.nextInt(hiraganaArray.size()))); 

를 추가 할 때

ArrayList<Integer> hiraganaArray = new ArrayList<Integer>(); 

OCheckBox.addItemListener(new ItemListener() { 
     public void itemStateChanged(ItemEvent e) { 
      if(e.getStateChange() == ItemEvent.SELECTED) { 
       hiraganaArray.add(1); 
       hiraganaArray.add(2); 
       hiraganaArray.add(3); 
       hiraganaArray.add(4); 
       hiraganaArray.add(5); 
      } 
      else { 
       hiraganaArray.removeAll(Arrays.asList(1)); 
       hiraganaArray.removeAll(Arrays.asList(2)); 
       hiraganaArray.removeAll(Arrays.asList(3)); 
       hiraganaArray.removeAll(Arrays.asList(4)); 
       hiraganaArray.removeAll(Arrays.asList(5)); 
      } 
     } 

startButton = new JButton("Start"); 
    startButton.setPreferredSize(new Dimension(100, 40)); 
    gbc.gridx = 3; 
    gbc.gridy = 13; 
    add(startButton, gbc); 

    startButton.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      layout.show(panelCont, "6"); 
     } 
    }); 

그것은 매우 잘 작동,하지만 다른 클래스에서 사용하는 경우 동일한 코드가 작동하지 않습니다.

답변

-1

나는 그것을 알아 냈습니다! 당신은 정말 정적 변수가 무엇인지에 읽어해야

System.out.println(HiraganaClass.hiraganaArray.get(r.nextInt(HiraganaClass.hiraganaArray.size()))); 
+0

:에 두 번째 클래스

static ArrayList<Integer> hiraganaArray; public ArrayList<Integer> getHiraganatArray() { return hiraganaArray; } 

그리고 코드 : 나는에 첫 번째 클래스의 코드를 변경할 필요가 있었다. 귀하의 "솔루션"은 아마도 당신에게 많은 문제를 야기합니다. –

+0

문제없이 작동하는 것 같습니다. 당신은 정교 할 수 있습니까? – PaladinButters

관련 문제