Saban
-
Gesamte Inhalte
85 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von Saban
-
-
Hmm Komisch :confused:
Muss ich mal schauen ob ich bei der JTable nen Fehler gemacht hab oder irgendwas ausversehen geändert hab aber das find ich schon noch raus
Auf alle Fälle möchte ich mich nochmal bei dir bedanken du hast mir extrem geholfen ohne dich würde ich wahrscheinlich wochen für die ganzen Probleme brauchen... VIELEN DANK
Ich hoffe ich kann mich irgendwann mal revanchieren falls du mal nicht weiter kommst
MfG
Saban
-
Sorry! Hier:
public class Cell_Renderer extends JLabel implements TableCellRenderer{ private Color LIGHTGREY = new Color(220, 220, 220); private Color GREY = new Color(181, 181, 181); private Font ZELLEN_FONT = new Font("Arial", Font.BOLD, 12); private Border ZELLEN_BORDER = BorderFactory.createEmptyBorder(1, 1, 1, 1); public Cell_Renderer(){ setOpaque(true); setBorder(ZELLEN_BORDER); } public Component getTableCellRendererComponent(JTable tabelle, Object value, boolean isSelected, boolean hasFocus, int row, int column){ if(value != null){ setText(value.toString()); } else { setText(""); } setFont(tabelle.getFont()); setForeground(tabelle.getForeground()); setBackground(tabelle.getBackground()); if(isSelected){ setFont(ZELLEN_FONT); } //Angezeigte Spalte in Modellspalte umwandeln column = tabelle.convertColumnIndexToModel(column); if(isSelected){ setBackground(GREY); } else if(column == 8 || column == 9){ setBackground(LIGHTGREY); } String text = getText(); String teil1 = ""; String teil2 = ""; if(text.length() > 10){ teil1 = text.substring(0, 5); teil2 = text.substring(6, text.length()); setText("<HTML>" + teil1 + "<BR>" + teil2 + "</HTML>"); tabelle.setRowHeight(row, 40); } return this; } }
MfG
Saban
-
Des wird ja immer peinlicher... (lesen sollte man schon können...)
ja gut das Problem bleibt aber irgendwie bestehen
tabelle.setRowHeight(row, 40);
ich hab jetzt einfach mal die Row hergenommen weil ich sonst keine Ahnung habe wie ich mich auf die aktuelle Zeile beziehen kann und des wirkt sich dann wieder auf alle Zeilen auf... (hoffe liegt nicht wieder daran das ichs nicht richtig gelesen habe...)
MfG
Saban
-
*SCHÄM*
ja sags halt gleich
Danke dir echt! du hast mir schon so oft geholfen! bist einfach Spitze
Eine Frage hätt ich aber noch und zwar will ich ja nur die Zeilenhöhe der Zeilen vergrößern bei denen auch die Zeile umgebrochen wird.
Wenn ich aber sage
if(text.length() > 10){ teil1 = text.substring(0, 5); teil2 = text.substring(6, text.length()); setText("<HTML>" + teil1 + "<BR>" + teil2 + "</HTML>"); tabelle.setRowHeight(20); }
dann macht der des bei allen. Was ja auch klar ist weil ich ja die Tabelle hernehme und nicht die Zeile... Kann man das auch auf eine bestimmte Zeile beziehen?
MfG
Saban
-
Hi
wie bekomme ich bitte so ne Referenz auf die JTable :confused:
MfG
Saban
-
Hat sich erledigt!
Lasse den Pfad ständig erweitern und geh dann wieder auf den Hauptpfad!
MfG
Saban
-
Hey Vanatic!
Danke für deinen Tip war genau der Fehler! :)
Hast du mir vllt auch gleich einen wie ich die Zeilenhöhe der zutreffenden Zeilen ändern kann?
MfG
Saban
-
Hallo Zusammen!
Also ich erzeuge mir ein File Objekt von einem bestimmten Pfad und lasse mir dann alle Ordner per listFiles() ausgeben. Das Problem ist jetzt ich würde gerne in jeden Order und die Datei auswählen können... In jedem Ordner liegt eine Datei. Ich kann mir die Liste der Ordner ohne Probleme ausgeben lassen nur weiß ich nicht wie ich da am besten in jeden Ordner rein komm die Datei auswähle (will mir die größe der Datei anzeigen lassen per file.length)
Hat mir da jemand nen Tip für?
MfG
Saban
-
Hallo Zusammen!
ich habe eine JTable in der ich alle Spalten bis auf die letzten 2 gesperrt habe. Nun möchte ich meine CellRenderer Klasse so umschreiben das alle Zellen die nen String haben der länger ist wie 20 Zeichen umbrechen und die Zeilenhöhe (nur in der Zeile wo es zu trifft) ändert. Zu versuchs zwecken habe ich nun mal meinen CellRenderer folgendermaßen erweitert
public class Cell_Renderer extends JLabel implements TableCellRenderer{ private Color LIGHTGREY = new Color(220, 220, 220); private Color GREY = new Color(181, 181, 181); private Font ZELLEN_FONT = new Font("Arial", Font.BOLD, 12); private Border ZELLEN_BORDER = BorderFactory.createEmptyBorder(1, 1, 1, 1); public Cell_Renderer(){ setOpaque(true); setBorder(ZELLEN_BORDER); } public Component getTableCellRendererComponent(JTable tabelle, Object value, boolean isSelected, boolean hasFocus, int row, int column){ if(value != null){ setText(value.toString()); } else { setText(""); } setFont(tabelle.getFont()); setForeground(tabelle.getForeground()); setBackground(tabelle.getBackground()); if(isSelected){ setFont(ZELLEN_FONT); } //Angezeigte Spalte in Modellspalte umwandeln column = tabelle.convertColumnIndexToModel(column); if(isSelected){ setBackground(GREY); } else if(column == 8 || column == 9){ setBackground(LIGHTGREY); } // Hier ist der Code für den Zeilenumbruch String text = getText(); String teil1 = ""; String teil2 = ""; if(text.length() > 10){ teil1 = text.substring(0, 5); teil2 = text.substring(6, text.length()); } setText("<HTML>" + teil1 + "<BR>" + teil2 + "</HTML>"); return this; } }
Mein Problem ist nun das nur noch Zellen angezeigt werden die nen String haben der länger ist wie 10 Zeichen und die Zeilenhöhe wird auch nicht angepasst.
Könnt ihr mir sagen was ich falsch mache :confused:
MfG
Saban
-
TableModel
in Java
Hallo Zusammen!
ich hab da auch mal eine Frage!
Wie meinst du das mit dem nur einmal ausführen der data[][]. Ich habe nämlich auch ein Table (mit einem TableModel) und das wird erst mit einem leeren Array angezeigt so bald jedoch der User wünscht das sie befüllt wird würd das Array mit Daten voll gepumpt und das TableModel neu initialisiert und die Daten angezeigt. Das alles passiert jedes mal wenn der User Kritierien zur Anzeige ändert.
Geht das auch perfomanter? Weil ich irgendwie grad auf dem Schlauch stehe wie das gemeint war mit dem Ressourcen fressend :eek
MfG
Saban
-
Hallo Zusammen!
Edit: Benutze Access2007
ich muss eine Oberfläche zur Pflege einer Datenbank schreiben. Die jeweiligen Komponenten der Oberfläche beziehe ich aus einer Datenbank. Also für die Checkboxen zb habe ich ein noch nicht initialisiertes Array
JCheckbox chb[];
weil ich noch nicht weiß wie groß das Array sein muss, da nur bestimmte Checkboxen angezeigt werden sollen (z. B. die in einem bestimmten Zeitraum liegen). Nun ist es aber total bescheuert jede Abfrage 2 mal durchzugehen. Einmal für die Anzahl der benötigten Checkboxen und einmal für die Ergebnisse. Für die jenigen die mit Count() kommen wollen... Es geht nicht da ich erst mal mit der nötigen Anzahl das Array deklarieren muss um dann die results in das Array zu schreiben...chb = new Checkbox[anzahl] chb[index] = Checkbox aus der Datenbank
Ich habe ungefähr 5 Panels bei denen das zu trifft und man merkt halt beim Programmstart extrem das es nicht grade perfomant ist Hat jemand eine Idee wie ich das besser lösen könnte :confused:
Bin für jede Hilfe dankbar!
MfG
Saban
-
Ich auch weil ich keine Ahnung hab wie ich das angehen soll und ob das mit der JTable überhaupt geht
MfG
Saban
-
Hi!
ich glaub das war doch ein wenig undeutlich :upps
also ich habe eine Zeile und in die 1 Spalte ist so breit das ich maximal 100 Zeichen anzeigen könnte. Nun bekomme ich aber einen String mit 180 Zeichen nun möchte ich die Höhe der Zeile sozusagen verdoppeln das der String in der Zeile ohne Probleme angezeigt werden kann.
Das Zeile x + 1 hört sich für mir mehr danach an die Zeile drunter zu befüllen Tut mir leid war wirklich schwammig erklärt!
MfG
Saban
-
Hmm... eine andere Lösung wäre das ich sage ich gib die Spaltenbreite statisch an Aber dazu müsste ich wissen ob mal einzelne Zeilen vergrößern kann also wenn
String.length() > 20
dann soll SubString 1 in der ersten Zeile liegen und SubString 2 in der Zeile
Ich hoffe ich konnte mich klar genug ausdrücken
MfG
Saban
-
Hallo Zusammen!
ich hab mir den Link mit den FontMetrics mal angeschaut aber ich komm da nicht wirklich weit :confused: könnte mir jemand vllt irgendwelche Codestücke zu Posten das ich mir nen Leitfaden draus ziehen kann
MfG
Saban
-
Hi VaNaTiC!
Danke für deine schnelle Antwort! Ich hab auch schon gegoogled und da gemerkt das es kein schönes Thema ist aber ich hab gehofft das mir hier wenigstens jemand was aufmunterndes sagen würde...
Na dann heißt es weiter probieren / suchen und hoffen das sich vllt doch noch jemand meldet...
MfG
Saban
-
Guten Morgen!
Ich habe eine JTable in der ich die optimale Spaltenbreite (also nur so breit das der längste Datensatz ohne Probleme gelesen werden kann) ermitteln lassen will, leider haben ich noch keine Ahnung wie ich das angehen soll bzw umsetzen könnte.
Bin für jeden Tip dankbar!
MfG
Saban
-
Achso :upps
Ähm eine Frage hätte ich dann noch meine klasse beinhaltet ja ein JPanel und im Konstruktor füge ich dieses Panel einem ScrollPane hinzu. Nur wie übergebe ich das ScrollPane später dem Frame.
Wenn ich ein Objekt erzeuge bleibt es ja ein Panel oder :confused:
Ich komm da nicht ganz mit...
MfG
Saban
-
Das mach ich so:
BK_Panel pa_Kostenstelle = new BK_Panel("Kostenstelle"); pa_Kostenstelle.setBounds( 10, 5, 200, 150); aktuelleGUI.add(pa_Kostenstelle);
MfG
Saban
-
Hallo!
Also ich habs jetzt mal so ausprobiert aber da wird kein Scrollpane angezeigt... :confused:
import java.awt.BorderLayout; import java.awt.Dimension; import java.sql.SQLException; import javax.swing.BorderFactory; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; public class BK_Panel extends JPanel{ private JScrollPane scrollPane = new JScrollPane(); /** * Konstruktor */ public BK_Panel(String titel){ setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), titel)); JLabel label[] = new JLabel[15]; setLayout(null); label[0] = new JLabel("Hallo"); label[0].setBounds(10, 10, 80, 20); add(label[0]); label[1] = new JLabel("Hallo"); label[1].setBounds(10, 35, 80, 20); add(label[1]); label[2] = new JLabel("Hallo"); label[2].setBounds(10, 60, 80, 20); add(label[2]); label[3] = new JLabel("Hallo"); label[3].setBounds(10, 85, 80, 20); add(label[3]); label[4] = new JLabel("Hallo"); label[4].setBounds(10, 85, 80, 20); add(label[4]); label[5] = new JLabel("Hallo"); label[5].setBounds(10,110, 80, 20); add(label[5]); label[6] = new JLabel("Hallo"); label[6].setBounds(10,135, 80, 20); add(label[6]); label[7] = new JLabel("Hallo"); label[7].setBounds(10,160, 80, 20); add(label[7]); label[8] = new JLabel("Hallo"); label[8].setBounds(10,185, 80, 20); add(label[8]); label[9] = new JLabel("Hallo"); label[9].setBounds(10,210, 80, 20); add(label[9]); label[10] = new JLabel("Hallo"); label[10].setBounds(10,235, 80, 20); add(label[10]); scrollPane.add(this); scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); scrollPane.setPreferredSize(new Dimension(320, 240)); } }
MfG
Saban
-
Hi!
Danke aber das weiß ich schon. Das einzige problem ist das mir kein scrollpane angezeigt wird. Ich lasse 14 JLabels auf das Panel legen. Und füge dann alles zusammen so wie du es gesagt hast. Das Problem ist mir werden nur 10 von 14 labels angezeigt und es erscheint keine Scrollpane :confused:
MfG
Saban
-
Ich muss aus ner Datenbank auslesen welche Strings es als Checkboxen geben soll und anschließend diese als Checkboxen initialiseren. Checkboxen erstellen ist kein Problem an sich. Ich würde nur gern wissen wie man ein Panel mit nem Scrollpane anlegt. Und wenn ich wüsste wie des geht dann würde ich den Post ja net brauchen und so weit bin ich bis jetzt noch nicht gekommen...
Scrollpane scrollpane = new Scrollpane(this);
wäre mein Ansatz gewesen
MfG
Saban
-
Hallo Zusammen!
ich muss für die Arbeit ein Layout zusammen bauen welches ein JPanel auf einem Frame enthält. In das Frame kommen eine unbekannte Anzahl an Checkboxen, d. h. falls die angezeigte Fläche auf dem Frame nicht ausreicht soll ein Scrollpane erscheinen das die Checkboxen angezeigt werden können die außerhalb des Panels liegen.
Ich weiß nicht ob ich mein Problem erklären konnte. Das Panel wird auf dem Frame mit einer größe von 200, 200 angezeit. Falls nun 10 Checkboxen angezeigt werden sollen geht das nicht da die Fläche auf dem Frame zu klein ist dann soll auf dem Panel eine Scrollpane erscheinen mit der man hoch und runter scrollen kann.
Das ist bis jetzt mein Ansatz:
import java.awt.BorderLayout; import javax.swing.BorderFactory; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; public class BK_Panel extends JPanel{ /** * Konstruktor */ public BK_Panel(String titel){ setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), titel)); } }
MfG
Saban
-
Danke für eure Posts!
ich hab das Problem gelöst und zwar muss zwischen *.mdb und *.accdb ein Leerzeichen.
jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ
Zeichnen eines Strichs
in Java
Geschrieben
Hallo Zusammen!
Ich habe eine Oberfläche und würde auf dieser gerne paar Striche ziehen. Das klappt mittlerweile EIGENTLICH auch. Das einzige ist wenn ich jetzt mein Frame hab dann sind die Striche genauso das wie ich sie haben will. Wenn ich jetzt jedoch ein anderes Fenster also ne internetseite meinen Explorer oder sonst was sind die Striche auf einmal weg alles andere ist genauso wie davor aber die Striche sind weg :confused:
Könnt ihr mir vllt weiter helfen?
Hier mein Code:
MfG
Saban