Position von ScrollBar anpassen

smartin123

Mitglied
Hi,

ich habe schon im Forum gesucht und gegoogled und leider keine Antwort für mein Frage gefunden.
Wahrscheinlich handelt es sich um eine sehr triviale Lösung, aber komm nicht drauf.

Ich hab eine JTextArea innerhalb einer ScrollPane. Leider ist die Scrollbar (also der Scrollbalken)
rechts ausgerichtet. Ich hätte es gern links ausgerichtet. Da hier auch der Text anfängt.

Weiß jemand wie ich das bewerkstelligen kann?

Also wie kann ich sagen, "horizontale Scrollbalken" deine Ausgangslage ist immer links?

Wäre stark, wenn das jemand wissen würde.

Danke+Gruß
smartin123
 
Zuletzt bearbeitet:
Was ich sehr merkwürdig finde, habe das nochmal getestet und bei einer einfach Testklasse öffnet das Fenster genau
so, wie ich es haben möchte:

So sollte es sein:

Code:
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JScrollPane;
import java.awt.Rectangle;
import javax.swing.JTextArea;

public class Test extends JFrame {

   private static final long serialVersionUID = 1L;
   private JPanel jContentPane = null;
   private JScrollPane jScrollPane = null;
   private JTextArea jTextArea = null;
   private String testString = "test1test1test1test1test1test1tes"
+"test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3test1test1test1test1test1test1test1test1test1test1test1test1test2\n"
+"test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3\n"
+"test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test4\n"
+"test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test5\n"
+"test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test6\n"
+"test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test7\n"
+"test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test8\n"
+"test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test9\n"
+"test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test10";  //  @jve:decl-index=0:

   /**
    * This is the default constructor
    */
   public Test() {
      super();
      initialize();
   }

   /**
    * This method initializes this
    *
    * @return void
    */
   private void initialize() {
      this.setSize(470, 297);
      this.setContentPane(getJContentPane());
      this.setTitle("JFrame");
   }

   /**
    * This method initializes jContentPane
    *
    * @return javax.swing.JPanel
    */
   private JPanel getJContentPane() {
      if (jContentPane == null) {
         jContentPane = new JPanel();
         jContentPane.setLayout(null);
         jContentPane.add(getJScrollPane(), null);
      }
      return jContentPane;
   }

   /**
    * This method initializes jScrollPane   
    *    
    * @return javax.swing.JScrollPane   
    */
   private JScrollPane getJScrollPane() {
      if (jScrollPane == null) {
         jScrollPane = new JScrollPane();
         jScrollPane.setBounds(new Rectangle(9, 7, 432, 237));
         jScrollPane.setViewportView(getJTextArea());
      }
      return jScrollPane;
   }

   /**
    * This method initializes jTextArea   
    *    
    * @return javax.swing.JTextArea   
    */
   private JTextArea getJTextArea() {
      if (jTextArea == null) {
         jTextArea = new JTextArea();
         jTextArea.setText(testString);
      }
      return jTextArea;
   }
   private void hinzufuegen(String satz){
      jTextArea.append(satz);
   }
   public static void main(String[] args) {
      String testString1 = "\naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
      Test test = new Test();
      test.setVisible(true);
      test.hinzufuegen(testString1);
   }

}

Allerdings in meinem Tool, wo ich dieses Fenster aus einer JTable heraus öffne, d.h. nach dem anklicken einer Zelle, erhält der Anwender zusätzliche Informationen zu der Zelle, und dort ist eben der Scrollbalken leider rechts.

Gibt es keine Möglichkeit den Scrollbalken zu steuern, d.h. links zu positionieren?

Laut API gibt es eine setValue Methode, wo man der ScrollBar einen Wert mitgeben kann.
"Sets the value of this scroll bar to the specified value. " aber ob mich das weiterbringt icon_smile.gif keine Ahnung

danke

Gruß
 
Zuletzt bearbeitet:
Guten Abend,

jetzt hab ich das Beispiel, wo der ScrollBalken rechts ist.

So sollte es nicht sein:

Code:
package julia;

import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JLabel;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ImageIcon;
import javax.swing.JPopupMenu;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
import javax.swing.text.DefaultEditorKit;

import java.awt.Cursor;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.Image;
import java.awt.Insets;
import java.net.URL;

public class ScrollBeispiel extends JFrame {

   private static final long serialVersionUID = 1L;
   private JPanel jContentPane = null;
   private JButton jButtonSchließen = null;
   private JLabel jLabelObject = null;
   private JTextField jTextFieldObject = null;
   private JScrollPane jScrollPaneInfos = null;
   private JTextArea jTextAreaInfos = null;
   private String testString = "test1test1test1test1test1test1tes"
      +"test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3test1test1test1test1test1test1test1test1test1test1test1test1test2\n"
      +"test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3\n"
      +"test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test4\n"
      +"test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test5\n"
      +"test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test6\n"
      +"test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test7\n"
      +"test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test8\n"
      +"test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test9\n"
      +"test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test3test1test1test1test1test1test1testest1test1test1test1test1test1test1test1test1test1test1test1test10";  //  @jve:decl-index=0:


   /**
    * This is the default constructor
    */
   public ScrollBeispiel() {
      super();
      initialize();
   }

   /**
    * This method initializes this
    *
    * @return void
    */
   private void initialize() {
      this.setSize(488, 296);
      this.setContentPane(getJContentPane());
      this.setTitle("JFrame");
   }

   /**
    * This method initializes jContentPane
    *
    * @return javax.swing.JPanel
    */
   private JPanel getJContentPane() {
      if (jContentPane == null) {
         GridBagConstraints gridBagConstraints3 = new GridBagConstraints();
         gridBagConstraints3.fill = GridBagConstraints.BOTH;
         gridBagConstraints3.gridwidth = 2;
         gridBagConstraints3.gridx = 0;
         gridBagConstraints3.gridy = 1;
         gridBagConstraints3.weightx = 1.0;
         gridBagConstraints3.weighty = 1.0;
         gridBagConstraints3.insets = new Insets(7, 24, 7, 28);
         GridBagConstraints gridBagConstraints2 = new GridBagConstraints();
         gridBagConstraints2.fill = GridBagConstraints.VERTICAL;
         gridBagConstraints2.gridx = 1;
         gridBagConstraints2.gridy = 0;
         gridBagConstraints2.ipadx = 302;
         gridBagConstraints2.ipady = -2;
         gridBagConstraints2.weightx = 1.0;
         gridBagConstraints2.insets = new Insets(11, 9, 7, 27);
         GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
         gridBagConstraints1.insets = new Insets(11, 31, 7, 9);
         gridBagConstraints1.gridy = 0;
         gridBagConstraints1.ipadx = 7;
         gridBagConstraints1.ipady = 2;
         gridBagConstraints1.gridx = 0;
         GridBagConstraints gridBagConstraints = new GridBagConstraints();
         gridBagConstraints.insets = new Insets(7, 0, 10, 100);
         gridBagConstraints.gridy = 2;
         gridBagConstraints.ipadx = 7;
         gridBagConstraints.ipady = -6;
         gridBagConstraints.gridx = 1;

         jLabelObject = new JLabel();
         jLabelObject.setText("Objekt:");
         jContentPane = new JPanel();
         jContentPane.setLayout(new GridBagLayout());
         jContentPane.add(getJButtonSchließen(), gridBagConstraints);
         jContentPane.add(jLabelObject, gridBagConstraints1);
         jContentPane.add(getJTextFieldObject(), gridBagConstraints2);
         jContentPane.add(getJScrollPaneInfos(), gridBagConstraints3);
      }
      return jContentPane;
   }

   /**
    * This method initializes jButtonSchließen
    *
    * @return javax.swing.JButton
    */
   private JButton getJButtonSchließen() {
      if (jButtonSchließen == null) {
         jButtonSchließen = new JButton();
         jButtonSchließen.setText("Schließen");
      }
      return jButtonSchließen;
   }

   /**
    * This method initializes jTextFieldObject
    *
    * @return javax.swing.JTextField
    */
   private JTextField getJTextFieldObject() {
      if (jTextFieldObject == null) {
         jTextFieldObject = new JTextField();
         jTextFieldObject.setEditable(false);
      }
      return jTextFieldObject;
   }

   /**
    * This method initializes jScrollPaneInfos
    *
    * @return javax.swing.JScrollPane
    */
   private JScrollPane getJScrollPaneInfos() {
      if (jScrollPaneInfos == null) {
         jScrollPaneInfos = new JScrollPane();
         jScrollPaneInfos.setViewportView(getJTextAreaInfos());
         
      }
      return jScrollPaneInfos;
   }

   /**
    * Fülle das Textfeld "jTextFieldObject"
    *
    * @param objectName
    */
   public void setTexttoTextFieldObject(String objectName) {
      jTextFieldObject.setText(objectName);
   }

   /**
    * Gib dem JLabel einen Namen
    *
    * @param objectName
    */
   public void setTexttoLabelObject(String objectName) {
      jLabelObject.setText(objectName);
   }

   /**
    *
    * @param eingabe
    */
   public void setTexttoTextAreaInfos(String eingabe) {
      jTextAreaInfos.append(eingabe);
   }

   public void clearTextAreaInfos() {
      jTextAreaInfos.setText("");
   }

   /**
    * This method initializes jTextAreaInfos
    *
    * @return javax.swing.JTextArea
    */
   private JTextArea getJTextAreaInfos() {
      if (jTextAreaInfos == null) {
         jTextAreaInfos = new JTextArea();
         jTextAreaInfos.setText(testString);
      }
      return jTextAreaInfos;
   }
   
   public static void main(String[] args) {
      ScrollBeispiel scb = new ScrollBeispiel();
      scb.setVisible(true);
   }

}

Hängt das vielleicht mit dem GridbagLayout zusammen?

Wie bekomme ich nun den Scrollbalken links positioniert?

Hoffentlich kann mir jemand helfen.

vg
 
Hab folgendes soeben herausgefunden:

Es liegt nicht am Quellcode.

Ich muss kurz dazu sagen, ich verwende Eclipse.

Wenn ich das Programm über die main (java application) starte, dann ist die scrollbar links.
Starte ich es aber mit "Java Bean", dann ist die Scrollbar rechts.

Ich habe so wenig ahnung, wie ich jetzt vorgehen soll. Ich ruf ja diese Klasse von einer
anderen Klasse (Jtable) auf. Und dort ist auch immer diese "blöde" scrollbar rechts.

Ihr seht schon, ich bin schon fast am verzweifeln. icon_smile.gif

Also noch eine gute Nacht

vg
 
Zurück