Hej, har lite funderingar kring ett Swing-GUI som jag håller på med. Jag vill fylla två paneler med samma grid enl. koden nedan. Är inte 110% säker, men närapå. Du kan inte lägga till samma komponent i flera containers. En komponent har en enda "parent" som sätts om varje gång du lägger till den i en ny container. Det finns säkert workarounds för det här, men då är det nog enklare att göra två separata komponenter. Frågan är varför du gör två llopar??? Har letat runt lite och nog också kommit fram till att en komponent bara får ha en parent. Andreas-> Han kanske har gjort en Split Loop-refactoring. http://www.refactoring.com/catalog/splitLoop.htmlSamma array i olika paneler?
mLeft = new JPanel();
mRight = new JPanel();
mEventField = new EventField[10][10]; //Klass som Extends JPanel
// Fyller min array
for(int i=0;i<10;i++) {
for(int j=0;j<10;j++) {
mEventField[i][j] = new EventField();
}
}
// Loop för att lägga till mEventField i mina paneler.
for(int i=0;i<10;i++) {
for(int j=0;j<10;j++) {
mLeft.add(mEventField[i][j]);
mRight.add(mEventField[i][j]);
}
}
Det blir dock bara mRight som håller en instans av mEventField. Har kollat med Sysout via getComponentCount()
Går det att göra som jag har tänkt eller får man helt enkelt skapa en ny likadan instans som man döper till något annat? Har testat med t.ex mLeft.add(mEventField2[][]); och då funkar det. Tanken var ju dock att jag ska kunna använda samma grid på två ställen. Några tips?
Sv: Samma array i olika paneler?
Sv: Samma array i olika paneler?
mLeft = new JPanel();
mRight = new JPanel();
mEventField = new EventField[10][10]; //Klass som Extends JPanel
// Fyller min array
EventField f
for(int i=0;i<10;i++) {
for(int j=0;j<10;j++) {
EventField f = new EventField();
mEventField[i][j] = f
mLeft.add(f);
mRight.add(f);
}
}
Finns fortfarande ditt problem med att en komponent bara får existera i en container.
Sv:Samma array i olika paneler?
Som svar på frågan varför jag har två loopar så är det dels för att jag är en slow-learner. ;)
Men också för att jag under pågående arbete först fyller min array, därefter så hårdkodar jag om vissa poster i arrayen till att innehålla specifika data för olika testfall. Det var naturligtvis inte relevant för det här exemplet men jag tänkte inte på att skriva om det i exempelkoden.
Får bli två separata komponenter.
Tack för hjälpen båda två! Sv: Samma array i olika paneler?