Я любитель, пишущий карточку со стрельбой из лука. Программа работает хорошо, но за счет 19 разделов идентичного кода каждая из 18 строк. Я пытаюсь сконденсировать код с помощью вызова метода. Я использую Java SE6 и Mig LayoutJava Swing JLabels показывается в методе buildGUI, но не в том случае, если он добавлен из другого метода
Вот раздел кода в графическом интерфейсе, который работает. GUI называется ниже
HomePage (содержащий основной метод) -> ChoiceGUI -> buildScoresPanel
public void buildScoresPanelMIG(JPanel scoresPanel) {
for (row = 0; row<(int)numberofrows; row++){
scoresPanel.add(scorelabel1[row],"gapleft 0,w 35px, hmin 35px,split 18");
scoresPanel.add(scorelabel2[row],"gap before 0px,gapleft 0,w 35px, hmin 35px");
scoresPanel.add(scorelabel3[row],"gap before 0px,gapleft 0,w 35px, hmin 35px");
scoresPanel.add(scorelabel4[row],"gap before 0px,gapleft 0,w 35px, hmin 35px");
scoresPanel.add(scorelabel5[row],"gap before 0px,gapleft 0,w 35px, hmin 35px");
scoresPanel.add(scorelabel6[row],"gap before 0px,gapleft 0,w 35px, hmin 35px");
//another 12 Jlabels }
}
Если, однако я поставил код в метод и назовите его, как показано ниже на JLabels не будет показать хотя я попытался перепроверить() перекрасить() и SetVisible (истина)
public void buildScoresPanelMIG(JPanel scoresPanel) {
for (row = 0; row<(int)numberofrows; row++){
addScoreLabels();
}
}
public void addScoreLabels(){
scoresPanel.add(scorelabel1[row],"gapleft 0,w 35px, hmin 35px,split 18");
scoresPanel.add(scorelabel2[row],"gap before 0px,gapleft 0,w 35px, hmin 35px");
scoresPanel.add(scorelabel3[row],"gap before 0px,gapleft 0,w 35px, hmin 35px");
scoresPanel.add(scorelabel4[row],"gap before 0px,gapleft 0,w 35px, hmin 35px");
scoresPanel.add(scorelabel5[row],"gap before 0px,gapleft 0,w 35px, hmin 35px");
scoresPanel.add(scorelabel6[row],"gap before 0px,gapleft 0,w 35px, hmin 35px");
//another 12 labels
//scoresPanel.revalidate();
//scoresPanel.repaint();
//scoresPanel.setVisible(true);
}
Я тралили интернет долгого времени пытается решить эту проблему, и я понимаю, что у меня есть фундаментальное непонимание того, как Компоненты Swing работают и были бы благодарны, если бы кто-то мог объяснить.
Чтобы лучше помочь, опубликуйте [SSCCE] (http://sscce.org). Как бы то ни было, мы в значительной степени должны быть дикими гуру, чтобы понять ваш код, и это становится еще хуже, поскольку мы пытаемся понять, какую ошибку вы совершили. –
Ваша первая подпись метода - 'public void buildScoresPanelMIG (JPanel scoresPanel)', а вторая вторая не принимает параметр JPanel в качестве параметра. Означает ли это, что «JPanel» является полем этого класса? – christopher