Buttons < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 15:02 So 19.02.2012 | Autor: | Philphil |
Hallo,
ich würde gerne wissen wie ich in nem Fenster sagen kann, dass die buttons 1-4 oben stehen 5-8 genau drunter und so weiter...
Ich googel jetzt schon länger und finde ncihts brauchbares :/ bitte um einen Tipp :)
Gruß Phil
|
|
|
|
Hallo philphil,
> Hallo,
>
> ich würde gerne wissen wie ich in nem Fenster sagen kann,
> dass die buttons 1-4 oben stehen 5-8 genau drunter und so
> weiter...
>
Dazu ist die Position und die Größe der Buttons festzulegen.
Position wird z.B. mit setLocation(x,y) festgelegt.
Größe z.B. mit setSize(x,y).
> Ich googel jetzt schon länger und finde ncihts brauchbares
> :/ bitte um einen Tipp :)
>
> Gruß Phil
Gruss
MathePower
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 16:28 So 19.02.2012 | Autor: | Philphil |
Ich habe beides implementiert gehabt:
button[i].setPreferredSize(new Dimension(15,15));
button[i].setLocation(X,Y);
(Ich lege viele Buttons an drum ist das in Form eines Arrays)
Dabei belasse ich die Dimension der Size gleich und die Location verändere ich. Trotz dessen bleiben alle Buttons in einer Reihe und stehen nciht untereinander.
(Um kurz dazulegen, was ich erreichen will: Ich möchte eine Art Schachbrett mit Buttons darstellen. Hierbei möchte ich ein Feld aus Buttons im Format 8x8 erstellen).
Gruß Phil
|
|
|
|
|
Hallo Philphil,
> Ich habe beides implementiert gehabt:
>
> button.setPreferredSize(new Dimension(15,15));
> button.setLocation(X,Y);
>
> (Ich lege viele Buttons an drum ist das in Form eines
> Arrays)
>
> Dabei belasse ich die Dimension der Size gleich und die
> Location verändere ich. Trotz dessen bleiben alle Buttons
> in einer Reihe und stehen nciht untereinander.
> (Um kurz dazulegen, was ich erreichen will: Ich möchte
> eine Art Schachbrett mit Buttons darstellen. Hierbei
> möchte ich ein Feld aus Buttons im Format 8x8 erstellen).
>
Nun, dann mußt Du Dir für die Positionen einen Algorithmus überlegen,
der die Position des i. Buttons berechnet.
> Gruß Phil
Gruss
MathePower
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 16:49 So 19.02.2012 | Autor: | Philphil |
Hi, den habe ich ja schon:
for (int j = 0; j < 8; j++) {
int X = 16 * j;
for (int i = 0; i < 8; i++) {
int Y = 16 * i;
button[i] = new JButton("" + (i + 1));
button[i].setVisible(true);
button[i].setSize(new Dimension(15,15));
button[i].setBackground(Color.GREEN);
button[i].setLocation(X,Y);
add(button[i]);
}
}
Aber trotzdem stimmt da noch irendwas nicht, da immer min. ein button das ganze Fenster ausfüllt.
Gruß Phil
|
|
|
|
|
Hallo Philphil,
> Hi, den habe ich ja schon:
>
> for (int j = 0; j < 8; j++) {
> int X = 16 * j;
> for (int i = 0; i < 8; i++) {
> int Y = 16 * i;
> button = new JButton("" + (i + 1));
> button.setVisible(true);
> button.setSize(new Dimension(15,15));
> button.setBackground(Color.GREEN);
> button.setLocation(X,Y);
> add(button);
> }
> }
>
> Aber trotzdem stimmt da noch irendwas nicht, da immer min.
> ein button das ganze Fenster ausfüllt.
>
Diesen Effekt habe ich nicht.
Gut, es dauert etwas, bis die Buttons aufgebaut sind.
> Gruß Phil
Gruss
MathePower
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 14:30 Di 21.02.2012 | Autor: | Philphil |
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Hi, ich hab mal wieder n neues Problem...
Ich dachte mir, dass es die Übersichtlichkeit des Programms erhöht, wenn ich die verschiedenen Elemente der Oberfläche in eigene Klassen einteile, aber wenn ich dies tue, und dann die externe Klasse aufrufen möchte, erstellt er unendlich neue Fenster. In welche Falle bin ich getappt?
relevanter Code in der Hauptklasse der Gui:
JFrame frame = new JFrame();
BuildMatrix MainScreen = new BuildMatrix(Matrix, frame);
Code in der aufgerufenen Klasse:
public class BuildMatrix extends Gui{
JButton[] button = new JButton[64];
public BuildMatrix(boolean[][] Matrix, JFrame frame) {
super(Matrix);
//Zeile
for (int j = 0; j < Matrix.length; j++) {
int X = 20 * (j + 1);
//Spalte
for (int i = 0; i < Matrix[j].length; i++) {
int Y = 20 * (i + 1);
button[i + 8*j] = new JButton();
button[i + 8*j].setVisible(true);
button[i + 8*j].setSize(new Dimension(20,20));
button[i + 8*j].setLocation(X,Y);
if (Matrix[j][i]) {
button[i + 8*j].setBackground(Color.BLUE);
}
else {
button[i + 8*j].setBackground(Color.GRAY);
}
frame.add(button[i + 8*j]);
}//for int i
}//for int j
}
|
|
|
|
|
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Hallo Philphil,
> Eingabefehler: "{" und "}" müssen immer paarweise
> auftreten, es wurde aber ein Teil ohne Entsprechung
> gefunden (siehe rote Markierung)
>
> Hi, ich hab mal wieder n neues Problem...
> Ich dachte mir, dass es die Übersichtlichkeit des
> Programms erhöht, wenn ich die verschiedenen Elemente der
> Oberfläche in eigene Klassen einteile, aber wenn ich dies
> tue, und dann die externe Klasse aufrufen möchte, erstellt
> er unendlich neue Fenster. In welche Falle bin ich
> getappt?
>
> relevanter Code in der Hauptklasse der Gui:
>
> JFrame frame = new JFrame();
> BuildMatrix MainScreen = new BuildMatrix(Matrix, frame);
>
> Code in der aufgerufenen Klasse:
>
> public class BuildMatrix extends Gui{
>
> JButton[] button = new JButton[64];
>
> public BuildMatrix(boolean[][] Matrix, JFrame frame) {
>
> super(Matrix);
>
> //Zeile
> for (int j = 0; j < Matrix.length; j++) {
>
> int X = 20 * (j + 1);
> //Spalte
> for (int i = 0; i < Matrix[j].length; i++) {
>
> int Y = 20 * (i + 1);
>
> button[i + 8*j] = new JButton();
> button[i + 8*j].setVisible(true);
> button[i + 8*j].setSize(new Dimension(20,20));
> button[i + 8*j].setLocation(X,Y);
>
> if (Matrix[j]) {
> button[i + 8*j].setBackground(Color.BLUE);
> }
> else {
> button[i + 8*j].setBackground(Color.GRAY);
> }
> frame.add(button[i + 8*j]);
> }//for int i
> }//for int j
>
> }
>
Schau Dir den Konstruktor der Hauptklasse, hier: super(Matrix), an.
Dieser ist wahrscheinlich dafür verantwortlich,
daß immer wieder neue Fenster erstellt werden.
Gruss
MathePower
|
|
|
|
|
Danke, ich habs jetzt bisschen umgebaut und nciht mehr als extends ... gemacht und die Knöpfe als array returnt und in der Hauptklasse des Gui dann erst hinzugefügt (sicherlich nicht die schönste geschweige den aleganteste Art, aber es funktioniert).
Ich schlage mich aber immernoch damit rum, dass die knöpfe erst sichtbar sind wenn man mit der Maus einmal drüber fährt. Also wenn ich auf Run drücke dann erscheint mein Programmfenster, aber die einzelnen Knöpfe sind nicht sichtbar (sie existieren zwar, aber sie sind wie gesagt erst sichtbar wenn man mit der Maus drüber fährt).
Ich habe nirgends irgendwas gefunden, was mir mit diesem Problem weiter helfen könnte :(
Weiß hier jemand woran es liegen kann? Gibt es sone Art refresh funktion die man eventuell nach dem Aufbauen der Oberfläche einmal ausführen könnte?
Gruß Phil
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:20 Do 23.02.2012 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|