2013-10-10 3 views
-4

최근에 Janel (JFrame에 있음)에 JPanel을 삽입하는 JLabel의 배열에 버튼을 추가하려고했습니다. 어떤 이유로, (나는 이클립스를 실행하고있다.) 나는이 줄을 자르는 컴파일러 에러를 얻는다 : me [f] .add (새로운 JButton ("")) ;. 패널에 배치 할 버튼 배열을 가져 오는 데 문제가 있습니다 (패널 1). 누구든지 내가 뭘 잘못하고 있는지 말해 줄 수 있니?여러 개의 버튼을 만드는 루프가 작동하지 않습니다.

package Grid; 
import java.awt.BorderLayout; 
import java.awt.Color; 
import java.awt.Font; 
import java.awt.GridLayout; 
import javax.swing.ImageIcon; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
public class Grid { 
private static int width; 
private static int length; 
public static JFrame frame = new JFrame(); 
public static JPanel panel1 = new JPanel(); 
private static JButton but[] = new JButton[width*length]; 
private static JFrame window = new JFrame(); 
public static void Gridify(int width,int length){ 
    //frame.setSize(500,500); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setEnabled(true); 
     panel1.setLayout(new GridLayout(width,length)); 
     panel1.setVisible(true); 
     panel1.setBackground(Color.GREEN); 
    frame.add(panel1); 
} 
public void manualPanels(int num){ 
    for(int f=0; f < num;f++){ 
    JPanel me[] = new JPanel[f]; 
    me[f].add(new JButton(" ")); 
    me[f].setVisible(true); 
    panel1.add(me[f]); 
    } 
    frame.setVisible(true); 
} 

} 
+2

당신이 얻을이 컴파일러 오류가 무엇입니까 : num 새로운 JPanel의를 생성하고 panel1에 넣어하기 위해

, 당신은 다음을 수행해야합니까? –

+0

루프 전에 JPanel 배열을 선언해야합니까? –

+1

목표는 무엇입니까 – vels4j

답변

0

당신은이 라인에 두 가지 오류가 있습니다

me[f].add(new JButton(" ")); 

먼저, 배열은 0에서 F-1에 간다 me[f]가 존재하지 않습니다.

둘째, 배열이 null (방금 만든 이후)입니다. 따라서 me[0]이라고 쓰면 오류가 발생합니다.

for (int f = 0; f < num; f++) { 
    JPanel panel = new JPanel(); 
    panel1.add(panel); 
} 
+0

그럼 어떻게 고칠 것을 제안합니까? 제 목표는 panel1에 많은 라벨을 생성하는 것입니다. 올바른 코드는 어떻게 생겼습니까? 나는 또한 메서드를 호출 할 때 값 (num)을 전달합니다. 그래서 f-1에서 실제로 0 일 때 어떻게 계산됩니까? – user2581598

+0

고맙습니다 만 !!!!!!!!! IT가 작동합니다 !!!!!!!!!! – user2581598

+0

@ user2581598 답변이 도움이 될 경우 동의해야합니다. –

관련 문제