Zum Inhalt springen

Saban

Mitglieder
  • Gesamte Inhalte

    85
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Saban

  1. 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: package UnserSudoku; import java.awt.BasicStroke; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.awt.geom.Line2D; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; public class Sudo_Frame extends JFrame{ public int feldlänge = 9; public int[][] array = new int[feldlänge][feldlänge]; public JTextField tf[][] = new JTextField[feldlänge][feldlänge]; public JButton bt_start = new JButton("Start"); public Font font = new Font("SansSerif", Font.BOLD, 14); public JPanel panel = new JPanel(); public Sudo_Frame(){ panel.setLayout(null); for(int zeilen = 0; zeilen < feldlänge; zeilen++){ for(int spalten = 0; spalten < feldlänge; spalten++){ tf[zeilen][spalten] = new JTextField(); tf[zeilen][spalten].setDocument(new Sudo_TextFeld_Begrenzung(1)); tf[zeilen][spalten].setHorizontalAlignment(JTextField.CENTER); panel.add(tf[zeilen][spalten]); } } add(panel); int pos_x = 10; int pos_y = 10; int hoehe = 25; int breite = 25; int zähler = 0; for(int zeilen = 0; zeilen < feldlänge; zeilen++){ for(int spalten = 0; spalten < feldlänge; spalten++){ tf[zeilen][spalten].setBounds(pos_x, pos_y, hoehe, breite); pos_x = pos_x + 35; zähler++; if(zähler == 9){ pos_x = 10; pos_y = pos_y + 35; zähler = 0; } } } setResizable(false); setTitle("Sudoku Löser"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(330, 350); } public int[][] getGet2DimArray(){ for(int zeilen = 0; zeilen < feldlänge; zeilen++){ for(int spalten = 0; spalten < feldlänge; spalten++){ array[zeilen][spalten] = Integer.parseInt(tf[zeilen][spalten].getText()); } } return array; } public void anzeigen(boolean bool){ setVisible(true); } public void paint( Graphics graphics ) { super.paint(graphics); graphics.drawLine( 10, 132, 320, 132); graphics.drawLine( 10, 237, 320, 237); graphics.drawLine(112, 30, 112, 340); graphics.drawLine(217, 30, 217, 340); } } MfG Saban
  2. Saban

    JTable Zeilenumbrüche

    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
  3. Saban

    JTable Zeilenumbrüche

    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
  4. Saban

    JTable Zeilenumbrüche

    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
  5. Saban

    JTable Zeilenumbrüche

    *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
  6. Saban

    JTable Zeilenumbrüche

    Hi wie bekomme ich bitte so ne Referenz auf die JTable :confused: MfG Saban
  7. Saban

    Ordner durchsuchen

    Hat sich erledigt! Lasse den Pfad ständig erweitern und geh dann wieder auf den Hauptpfad! MfG Saban
  8. Saban

    JTable Zeilenumbrüche

    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
  9. Saban

    Ordner durchsuchen

    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
  10. 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
  11. Saban

    TableModel

    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
  12. 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
  13. Ich auch weil ich keine Ahnung hab wie ich das angehen soll und ob das mit der JTable überhaupt geht MfG Saban
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...