Panel, auf dem man Panels hin und her schieben kann

  • Hallo Leute

    ich bastel gerade an ... siehe Titel ^^.
    Die Panels werden auch auf DEM Panel angezeigt, aber erstens nicht dort, wo ich es erwartet hätte, zweitens funktioniert das mit dem hin und her schieben nicht.

    Ich hatte es mir wie folgt gedacht. Das Panel wird links oben in der Ecke erzeugt. Dann kann ich es auf dem Panel verschieben, indem ich die Maustaste gedrückt halte (auf dem Panel natürlich).

    Leider passiert folgendes: Das Panel wird links oben (zu weit links und zu weit oben) in der Ecke eingefügt. Wenn ich drauf klicke und die Maustaste gedrückt halte, sehe ich das Panel nur, wenn ich nach links oben, aus dem Panel rausgehe. Bewegen lässt es sich dementsprechend nicht.

    Hilft es vlcht weiter, dass das große anzeige Panel nicht das einzige in meinem JFrame ist?

    Ich hatte eine Vorlage von http://www.java2s.com/ wo ein ausgemaltes Rechteck verschoben wurde.

    mfg
    Nicholas

    Hier ist dann meine Version:

  • Wenn jemand noch mehr Infos braucht, weil er mein Problem nicht versteht: nur zu. Ich wäre überglücklich, wenn es jemandem gelingen würde herauszufinden, wo mein Problem liegt.

  • nur so als anmerkung

    dieser code ist viel zu dreckig um da igendwas draus rauslesen zu können ohne sich, vllt nicht ein bein, aber nen finger auszureißen

    iAkt, i2, b1, krznbloxfwlöasf - solche variablen namen sind einfach toll

    [FONT=Arial, Helvetica, sans-serif](\__/) [/FONT]
    [FONT=Arial, Helvetica, sans-serif] (='.'=) [/FONT]This is Bunny. Copy Bunny into your signature to help
    [FONT=Arial, Helvetica, sans-serif](")_(")[/FONT] him on his way to world domination.

  • Sry VeVuSIo,

    für for Schleifen bietet sich ein i1 für einen Steigenden Int-Wert einfach an. Ich will aber natürlich hier keinem Stress machen, deshalb guck ich mal, dass ich den Code irgendwie umgeschrieben bekomme.

    Danke trotzdem für die Antwort

  • Hi, ich weiß zwar nicht genau was du machen willst aber hier mal mein Vorschlag im Attachment. Da solltest du falls nötig die Events auch weiter passen. Auch würde ich die Listener in ein eigene Class auslagern. Weiters musst noch abrgen ob es an eine ungültige Stelle verschoben wird bzw. eine ScrollPane etc. verwenden und den Container vergrößern. Bei Soll Previewdraw verwendet werden empfehle ich XOR. Bzw. wann du was neu zeichnest solltest ändern. Das was ich gemacht habe sollte nur veranschaulichen wie. Du kannst natürlich bei dem händischen Durchsuchen der Kinder bleiben (ist auch performanter).

    Wichtig: Du kannst das zip-file in ein jar umbenennen und direkt ausführen (Java 1.6 vorausgesetzt und die Endung keinem anderen Tool zugewiesen ist). Sind auch die Src-Files drinnen.

    mfg Schakal

  • Hallo Schakal,

    erstmal vielen Dank an dich für deine nette Antwort. Ich wollte nur kurz fragen, ob du meine TablePanel Klasse editiert hast, da in der Zip davon keine .java-Dateil drin war.
    Außerdem wollte ich fragen, wie ich denn jetzt vorgehen müsste, wenn ich mein TablePanel nicht links oben in der Ecke des Fensters sitzen habe, da das das Problem zu sein scheint.

    Nochmals vielen Dank

    Nicholas

  • Schon ergibt sich ein neues Problem... seufz... ^^

    Das mit dem Panelverschieben läuft jetzt. Allerdings möchte ich auf den Panels natürlich auch was drauf haben - eine Tabelle. Das an sich währe kein Problem, wollte ich nicht in verschiedenen Zellen eine andere Schriftfarbe haben.
    Ich habe mich natürlich informiert und habe bisher das hier gemacht:



    Den Renderer hab ich z.T. aus einem Forum, wo ein ähnliches Problem behandelt wurde.
    Um das ganze zu vereinfachen wollte ich erst einmal ohne Bedingung einfach jede Zelle einfärben, aber auch das hat nicht funktioniert.
    Ich wollte fragen, woran das liegt, und, wie ich jetzt z.B. anstatt den Hintergrund die Schriftart bzw. Schriftfarbe (foreground???) ändern kann.

    Danke wie immer im Vorraus

    Nicholas

  • Meinst du so? :



    Das brachte nämlich leider keinen Erfolg...

    Danke trotzdem für den Vorschlag

  • Ich glaub JTable.class ist falsch, da gehört TableColumn.class oder allgemein Object.class, oder du Fragst die jeweilige Zelle ab bzw. Column mit:

    TableColumn col = table.getColumnModel().getColumn(vColIndex);
    col.setCellRenderer(new MyTableCellRenderer());

    der erste Paramter der Methode bei JTable set... ist nämlich eine die Klasse für Columns.

    Das mit dem Component lass mal gleich.

    Schreib obs funktioniert hat.

    edit:How to JTable
    Erklärt wie du einzelne Spalen und Zellen verändern kannst.

    mfg Schakal

    Einmal editiert, zuletzt von Schakal (16. Mai 2008 um 07:58)

  • Hallo Schakal,

    also das mit der Spalte setzten klappt schon mal. Vielen Dank dafür.
    Wie geht das jetzt analog mit einer Zelle, oder Zeile?

    Danke im Voraus
    Nicholas

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!