Zum Inhalt springen

Saban

Mitglieder
  • Gesamte Inhalte

    85
  • Benutzer seit

  • Letzter Besuch

Beiträge 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. 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 :D

    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. 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. 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. *SCHÄM*

    ja sags halt gleich :D

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

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

  8. 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

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

  10. 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 :D Tut mir leid war wirklich schwammig erklärt!

    MfG

    Saban

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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

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