• Aktualisierte Forenregeln

    Eine kleine Änderung hat es im Bereich Forenregeln unter Abschnitt 2 gegeben, wo wir nun explizit darauf verweisen, dass Forenkommentare in unserer Heftrubrik Leserbriefe landen können.

    Forenregeln


    Vielen Dank

JTable - Rahmen ausblenden?

DerEvil

Spiele-Novize/Novizin
Mitglied seit
21.08.2005
Beiträge
141
Reaktionspunkte
0
***Neue Frage weiter unten***

Hallo,
möchte gerne eine GUI erstellen mit Hintergrundbild. Und auf diesem Bild will ich an bestimmten stellen ein extra Bild einblenden.
(z.B. Schachbrett als Hintergrund und darauf Spielsteine)

Meine Idee:
1 Ein JPanel erstellen
2 Hintergrundbild einfügen ins JPanel
3 Dann ein Gridlayout übers Bild legen
4 In Grid Spielstein einbleden.

Also 1 und 2 habe ich scho realisiert
:-D

Meine Fragen:
Ist es sinnvoll, meine Idee mit Gridlayout zu realiseren?
Kann ich im Grid Objekte abfragen bzw. kann ich abfragen, ob ein Grid schon belegt ist?

DANKE
 
AW: Java-Gridlayout abfragen

Afaik kannst du nicht ein Layout über ein anderes setzen, sondern nur verschachteln.
Ich würde im Hintergrund dein Bild lassen und alle Objekte auch als Bilder zeichnen.
Wir hatten in der Uni mal so ein Projekt und im JPanel sah es etwa so aus:
private Image bild;

protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;

try {
canibal = ImageIO.read(new File("bild.png"));
} catch (IOException e) {
e.printStackTrace();
}

g2.drawImage(bild, x, y, null);
}
Guck dir am besten nochma an, wie das mitn Zeichnen genau funktioniert, weil ich das auch nicht mehr so im Kopf hab.
 
AW: Java-Gridlayout abfragen

Mir gehts nur darum, ob ich dann später an beliebigen stellen Bilder ins Grid setzen kann. Dachte des geht im Grid nur der Reihe nach!?

Wichtig wäre, dass ich im Spielbetrieb meine Steine (Objekte) an beliebige Stellen ein und ausbleden könnte.
Oder wäre eine JTable eine bessere Lösung?

PS:
Kenn mich da auch nicht so gut aus
 
AW: Java-Gridlayout abfragen

Also so wie ich dein Plan verstehe machste in deinem Grid in jedes Quadrat ein Objekt rein.
Da kannst du natürlich jederzeit das Bild ändern und das ein- und ausblenden.
Jedoch brauchst du dann für jedes Quadrat ein Objekt und finde ich das nicht gerade komfortabel.
Wenn ich jetzt mal als Beispiel Schach nehme. Dann ist es doch viel sinnvoller für jede Schachfigur ein Objekt zu machen, anstelle für jedes Schachfeld. Du kannst die Schachfiguren beliebig bewegen, ein- und ausblenden. Das entspricht auch viel mehr dem logischen Verständnis.
Sicherlich geht es auch auf deine Weise, aber dort müsstest du immer abfragen, wer gerade in dem Schachfeld ist und die Aktionen anpassen, was wiederum zu erheblichen Redundanzen führt.

Vielleicht verdeutlichst du einfach, was du vorhast, weil so würde ich sagen macht Grid, Table, etc keinen Sinn. Einen Malbereich mit deinem Hintergrundbild und dann im Vordergrund die Elemente. Damit könntest du die Elemente auch bewegen und hast mehr Freiheiten.
 
AW: Java-Gridlayout abfragen

...erst mal Danke für die schnellen Antworten.

Also im Moment wäre mir schon geholfen, wenn du mir sagen könntest, wie ich überhaupt ein Grid (oder Table) über ein Bild legen kann.

Ist-Situation:
Habe ein Bild in ein JPanel gepackt. Wie bekomm ich jetzt das Gird über das Panel?
Code Bsp. wäre super

Was mir außerdem noch aufgefallen ist:
Wenn ich das Schachteln anfange und ich am Ende beim laufende Programm bzw. das laufende Fester die Größe verändere, dann passt sich das Bild nicht dynamisch an.Es wird was weggeschnitten?

.
.
.

JPanel bildpanel= new JPanel();
JLabel bild= new JLabel(new ImageIcon("c:/bild.jpg"));
bildpanel.add(bild)

Mainpanel.add(bildpanel)
Mainpanel.add(buttenspanel)
 
AW: Java-Gridlayout abfragen

DerEvil am 06.11.2008 00:07 schrieb:
Also im Moment wäre mir schon geholfen, wenn du mir sagen könntest, wie ich überhaupt ein Grid (oder Table) über ein Bild legen kann.
Eben das, hab ich im ersten Post gesagt, geht meiner Meinung nach nicht. Du kannst Layouts afaik nur verschachteln und nicht übereinander legen.
Mein Vorschlag ist wie gesagt alles mit Bildern zu machen und kein Layout für diesen Zeichenbereich zu verwenden. Drumherum für Knöpfe und so kann man ja wieder ein Layout verwenden.
Die Openbooks sind zwar kein angebrachtes Lehrbuch, aber als Nachschlagewerk doch immer gut. Siehe hier.
 
AW: Java-Gridlayout abfragen

ja du hattest recht, ich war total aufn falschen Dampfer. JTable und dann Objekte reinschieben heißt die Lösung! Perfekt!!!!


DANKE


***Neues Problem***


hi,
ich bekomm den Rahmen bzw. Abstand zwischen den Kästchen nicht weg. Habe aber schon alles in der JTabel auf 0 gesetzt!

JTable table = new JTable(Data, COLHEADS);
table.setDefaultRenderer(Object.class, e);
table.setRowHeight(100);
table.setRowMargin(0);
table.setIntercellSpacing(new Dimension (0,0));
table.setShowHorizontalLines(false);
 
AW: Java-Gridlayout abfragen

DerEvil am 06.11.2008 19:15 schrieb:
ich bekomm den Rahmen bzw. Abstand zwischen den Kästchen nicht weg. Habe aber schon alles in der JTabel auf 0 gesetzt!
Also die Ränder müsstens doch mit table.setShowGrid(false); weggehen, oder was meinst du jetzt? Ansonsten hier schon geschaut?
 
Zurück