Announcement

Collapse
No announcement yet.

ScrollPane aktualisieren??

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ScrollPane aktualisieren??

    Hi,
    folgendes Szenario:

    Ich habe eine Graphische Oberfläche, in der Felder mit Daten aus einer Datenbank gefüllt werden.

    In einer Klasse 'Stammdaten' gibts ne Auswahlbox mit den Werten 1-6.
    Je nach Auswahl werden in einem Reiter 'Parameter' verschiedene Felder Angezeigt oder auch nicht. (Pro Feld ein Label und ein Textfeld)

    Die Textfelder werden jeweils in einer Methode angelegt und initialisiert und z.B. die Größe und Position angegeben
    (Hier und da noch ein paar Gimmicks wie ToolTips usw.)

    Code:
    	private JTextField getTxtTEST() {
    		if (txtTEST == null) {
    			txtTEST = new JTextField();
    			txtTEST.setBounds(new Rectangle(484, 95, 85, 27));
    			txtTEST.setToolTipText(xml.getLabel("maxlength")
    					+ "5 - nvarchar");
    			txtTEST.addKeyListener(new java.awt.event.KeyAdapter() {
    				@Override
    				public void keyReleased(java.awt.event.KeyEvent e) {
    					String txt = new String(txtTEST.getText());
    					if (txtTEST.getText().length() >= 6) {
    						txtTEST.setText(txt.substring(0, 5));
    					}
    				}
    			});
    		}
    		return TEST;
    	}
    Jetzt befindet sich im Reiter Parameter auch eine ScrollPane (+Label).
    Diese ScrollPane soll im Reiter Parameter die Position ändern, wenn im Reiter Stammdaten in der ComboBox ein anderer Wert ausgewählt wird.
    Bei den Labels funktioniert das einwandfrei. (Einfach ne If-Schleife mit cb.getSelectedIndex und dann eben lblTest.setBounds(new Rectangle(x,y,width,height).
    Bei den Methoden JTextFields und JScrollPanes bekomme ich das einfach nicht hin.

    Hier noch der Code der sc:

    Code:
    private JScrollPane getSc() {
    		if (sc == null) {
    				sc = new JScrollPane();
    				sc.setBounds(new Rectangle(352, 540, 300, 93));
    				sc.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    				sc.setViewportView(getJTextArea());
    				sc.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    			
    		}
    		return sc; 
    	}
    Kann sein, dass es relativ einfach ist. Aber ich komm nicht drauf.
    Bitte um Hilfe!

    Danke,
    Maddin

  • #2
    Wo werden deine angelegten Objekte einem Layout hinzugefügt, bzw. dem Parent hinzugefügt?
    Christian

    Comment


    • #3
      In der Klasse Parameter:

      Code:
      public ParameterNew() {
      		initialize();
      }
      
      private void initialize() {
      
          // BlaBlaBla, Labels usw werden angelegt...
          // ... und dann werden Labels und die txtXY-Methoden geaddet
      
      this.add(lblTest, null);
          //....usw
      
      this.add(getTxtTest(), null);
      this.add(getSc(), null);
          //...
      }
      Meinst du das? (Sorry, bin eher der Rookie)

      Mfg Maddin

      Comment


      • #4
        Im Prinzip geht es mir um folgendes:

        Ich muss in der Klasse Stammdaten auf die Scrollpane der Klasse Parameter zugreifen. Kann/darf ich aber nicht.

        [also: ParameterNew.Sc.setBounds(new Rectangle(x,y,width,height)]

        Auf Labels, Textfelder usw kann ich zugreifen. WAS muss ich WO ändern??

        Comment


        • #5
          Entweder die Methode getSC public machen oder das Objekt selbst
          Christian

          Comment


          • #6
            [...]oder das Objekt selbst
            Was meinst du damit?

            Die Methode getSC hab ich auch schon versucht mit public machen. klappt nicht.
            Das strange ist, dass ich noch eine Scrollpane in der Parameterklasse habe.
            Die kann ich problemlos in der Stammdatenklasse ansprechen.

            Comment


            • #7
              irgendwo muss ja sc deklariert sein
              Christian

              Comment


              • #8
                ja zu Krass!!!

                danke dir. War sogesehen zuuuuuu einfach.
                ca 150 variable, labels, textfelder waren mit public static deklarieret.
                Nur Sc war private

                Comment

                Working...
                X