ScrollBar mit Frame verbinden?

  • Themenstarter Themenstarter Gast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hi...
habe ein Frame-programm wo der Inhalt langsam zu viel wird...
wie kann ich eine scrollBar erstellen und sie so mit dem programm verbinden das das ganze "prog" gescrollt wird?

vielen Dank schon im voraus !!! :!:
 
*sry hab nicht unbedingt so viel Ahnung!*

Also muss ich da nicht den ganzen Quelltext umschreiben? ( ist schon über 700 zeilen)
Ich meine die ganzen Objekte die ich schon habe müssen dann doch in das JScrollPane gesetzt werden oder?

Wenn nicht: wie sieht das im Quelltext aus?
danke
 
Es kommt darauf an, wie dein Quelltext aussieht. Ein Beispiel:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ScrollTest extends JFrame {
  JScrollPane jsb = new JScrollPane();
  JPanel panel = new JPanel();
  ButtonGroup jrg = new ButtonGroup();
  JRadioButton jrb1 = new JRadioButton();
  JRadioButton jrb2 = new JRadioButton();
  JRadioButton jrb3 = new JRadioButton();
  JRadioButton jrb4 = new JRadioButton();
  public ScrollTest (String Title) {
    super (Title);
    addWindowListener(new WindowAdapter() {
      public void windowClosing (WindowEvent evt) {System.exit(0);}});
    setSize(100, 500);
    getContentPane().setLayout(new BorderLayout());
    jsb.setViewportView(panel);
    getContentPane().add(jsb);
    jrb1.setText("Text");
    jrg.add(jrb1);
    panel.add(jrb1);
    jrb2.setText("Text");
    jrg.add(jrb2);
    panel.add(jrb2);
    jrb3.setText("Text");
    jrg.add(jrb3);
    panel.add(jrb3);
    jrb4.setText("Text");
    jrg.add(jrb4);
    panel.add(jrb4);
    jsb.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    jsb.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
  }
  public static void main (String args[]) {
    new ScrollTest("ScrollTest").setVisible(true);
  }
}
Wenn du deine Komponenten direkt auf die ContentPane gelegt hast, kannst du das ja mit Suchen und Ersetzen korrigieren.
Vielleicht postest du mal den (und nur den) GUI-Aufbauenden Code
 
So... Ich hoffe das ist der "GUI-Aufbauende Text" 😳
wenn nicht korrigiere mich bitte in meiner falsch-Annahme🙂


Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 29.05.2007
  * @author Johannes Paul
  */

public class example extends JFrame {
  // Anfang Variablen
  private JTextField jTextField10 = new JTextField();
  
  
  private JTextField jTextField1 = new JTextField();
  private JTextField jTextField2 = new JTextField();
  private JTextField jTextField3 = new JTextField();
  private JTextField jTextField4 = new JTextField();
  private JTextField jTextField6 = new JTextField();
  private String[] jComboBox1Daten = {"Beispiel", "Beispiel2", "Beispiel3"};
  private JComboBox jComboBox1 = new JComboBox(jComboBox1Daten);
  
  private JTextField jTextField1_1[] = new JTextField[50];
  private JTextField jTextField2_1[] = new JTextField[50];
  private JTextField jTextField3_1[] = new JTextField[50];
  private JTextField jTextField4_1[] = new JTextField[50];
  private JComboBox jComboBox1_1[] = new JComboBox[50];
  private JTextField jTextField5_1[] = new JTextField[50];
  private JButton jButton1_1[] = new JButton[50];
  int akt_position;
  int zeilenNummer = 0;
  
  private JLabel jLabel1 = new JLabel();
  private JLabel jLabel2 = new JLabel();
  private JLabel jLabel3 = new JLabel();
  private JLabel jLabel4 = new JLabel();
  private JLabel jLabel5 = new JLabel();
  private JLabel jLabel6 = new JLabel();
  private JButton jButton1 = new JButton();
  Container cp = getContentPane();
  // Ende Variablen
  
  public int getZeilenNummer() {
    return this.zeilenNummer;
  }
  public void erhöheZeilenNummer() {
    this.zeilenNummer += 1;
  }
  public void deklaration(){

  }
  public void neueZeile(int zeilenNummer) {
    for (int i = 0; i < 50; i++) {
      jTextField1_1[i] = new JTextField();
      jTextField2_1[i] = new JTextField();
      jTextField3_1[i] = new JTextField();
      jTextField4_1[i] = new JTextField();
      jComboBox1_1[i] = new JComboBox(jComboBox1Daten);
      jTextField5_1[i] = new JTextField();
      jButton1_1[i] = new JButton();
    }
    int akt_position = 48;
    for (int i = 0; i < 50; i++) {
      akt_position += 32;
      jTextField1_1[i].setBounds(16, akt_position,41, 24);
      jTextField1_1[i].setText("Textfeld");
      jTextField2_1[i].setBounds(64, akt_position, 121, 24);
      jTextField2_1[i].setText("Textfeld");
      jTextField3_1[i].setBounds(192, akt_position, 121, 24);
      jTextField3_1[i].setText("Textfeld");
      jTextField4_1[i].setBounds(320, akt_position, 121, 24);
      jTextField4_1[i].setText("Textfeld");
      jTextField5_1[i].setBounds(600, akt_position, 121, 24);
      jTextField5_1[i].setText("Textfeld");
      jComboBox1_1[i].setBounds(448, akt_position, 145, 24);

      jButton1_1[i].setBounds(728, akt_position, 120, 25);
      jButton1_1[i].setText("Button");
      jButton1_1[i].addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
          neueZeile(getZeilenNummer());
        }
      });
    }

    cp.add(jTextField1_1[getZeilenNummer()]);
    cp.add(jTextField2_1[getZeilenNummer()]);
    cp.add(jTextField3_1[getZeilenNummer()]);
    cp.add(jTextField4_1[getZeilenNummer()]);
    cp.add(jComboBox1_1[getZeilenNummer()]);
    cp.add(jTextField5_1[getZeilenNummer()]);
    cp.add(jButton1_1[getZeilenNummer()]);
    erhöheZeilenNummer();
  }

  public example(String title) {
    // Frame-Initialisierung
    super(title);
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent evt) { System.exit(0); }
    });
    int frameWidth = 1005;
    int frameHeight = 329;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2 ;
    setLocation(x, y);
    cp.setLayout(null);
    // Anfang Komponenten

    jTextField1.setBounds(16, 48, 41, 24);
    jTextField1.setText("Textfeld");
    cp.add(jTextField1);
    jTextField2.setBounds(64, 48, 121, 24);
    jTextField2.setText("Textfeld");
    cp.add(jTextField2);
    jTextField3.setBounds(192, 48, 121, 24);
    jTextField3.setText("Textfeld");
    cp.add(jTextField3);
    jTextField4.setBounds(320, 48, 121, 24);
    jTextField4.setText("Textfeld");
    cp.add(jTextField4);
    jTextField6.setBounds(600, 48, 121, 24);
    jTextField6.setText("Textfeld");
    cp.add(jTextField6);
    jComboBox1.setBounds(448, 48, 145, 24);
    cp.add(jComboBox1);
    
    jLabel1.setBounds(16, 32, 44, 16);
    jLabel1.setText("Label");
    jLabel1.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(jLabel1);
    jLabel2.setBounds(64, 32, 124, 16);
    jLabel2.setText("Label");
    jLabel2.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(jLabel2);
    jLabel3.setBounds(192, 32, 124, 16);
    jLabel3.setText("Label");
    jLabel3.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(jLabel3);
    jLabel4.setBounds(320, 32, 124, 16);
    jLabel4.setText("Label");
    jLabel4.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(jLabel4);
    jLabel5.setBounds(448, 32, 148, 16);
    jLabel5.setText("Label");
    jLabel5.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(jLabel5);
    jLabel6.setBounds(600, 32, 124, 16);
    jLabel6.setText("Label");
    jLabel6.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(jLabel6);
    jButton1.setBounds(728, 48, 120, 25);
    jButton1.setText("Button");
    cp.add(jButton1);
    jButton1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton1ActionPerformed(evt);
        neueZeile(getZeilenNummer());
      }
    });

    // Ende Komponenten

    setResizable(true);
    setVisible(true);
  }

  // Anfang Ereignisprozeduren
  public void jButton1ActionPerformed(ActionEvent evt) {

  }

  // Ende Ereignisprozeduren

  public static void main(String[] args) {
    new example("example");
  }
}
 
vielleicht startest du das Prog einfach mal bei dir...
nur damit du weist wie das mit den vielen Zeilen gemeint ist, und das das so nicht mit dem ContentPane geht (jedenfalls so wie du es mir ebend erklärt hast)

trotzdem danke!
 
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 29.05.2007
  * @author Johannes Paul
  */

public class example extends JFrame {
  // Anfang Variablen
  private JTextField jTextField10 = new JTextField();


  private JTextField jTextField1 = new JTextField();
  private JTextField jTextField2 = new JTextField();
  private JTextField jTextField3 = new JTextField();
  private JTextField jTextField4 = new JTextField();
  private JTextField jTextField6 = new JTextField();
  private String[] jComboBox1Daten = {"Beispiel", "Beispiel2", "Beispiel3"};
  private JComboBox jComboBox1 = new JComboBox(jComboBox1Daten);

  private JTextField jTextField1_1[] = new JTextField[50];
  private JTextField jTextField2_1[] = new JTextField[50];
  private JTextField jTextField3_1[] = new JTextField[50];
  private JTextField jTextField4_1[] = new JTextField[50];
  private JComboBox jComboBox1_1[] = new JComboBox[50];
  private JTextField jTextField5_1[] = new JTextField[50];
  private JButton jButton1_1[] = new JButton[50];
  int akt_position;
  int zeilenNummer = 0;

  private JLabel jLabel1 = new JLabel();
  private JLabel jLabel2 = new JLabel();
  private JLabel jLabel3 = new JLabel();
  private JLabel jLabel4 = new JLabel();
  private JLabel jLabel5 = new JLabel();
  private JLabel jLabel6 = new JLabel();
  private JButton jButton1 = new JButton();
  Container cp = new Container();
  JScrollPane jsb = new JScrollPane();
  // Ende Variablen

  public int getZeilenNummer() {
    return this.zeilenNummer;
  }
  public void erhöheZeilenNummer() {
    this.zeilenNummer += 1;
  }
  public void deklaration(){

  }
  public void neueZeile(int zeilenNummer) {
    for (int i = 0; i < 50; i++) {
      jTextField1_1[i] = new JTextField();
      jTextField2_1[i] = new JTextField();
      jTextField3_1[i] = new JTextField();
      jTextField4_1[i] = new JTextField();
      jComboBox1_1[i] = new JComboBox(jComboBox1Daten);
      jTextField5_1[i] = new JTextField();
      jButton1_1[i] = new JButton();
    }
    int akt_position = 48;
    for (int i = 0; i < 50; i++) {
      akt_position += 32;
      jTextField1_1[i].setBounds(16, akt_position,41, 24);
      jTextField1_1[i].setText("Textfeld");
      jTextField2_1[i].setBounds(64, akt_position, 121, 24);
      jTextField2_1[i].setText("Textfeld");
      jTextField3_1[i].setBounds(192, akt_position, 121, 24);
      jTextField3_1[i].setText("Textfeld");
      jTextField4_1[i].setBounds(320, akt_position, 121, 24);
      jTextField4_1[i].setText("Textfeld");
      jTextField5_1[i].setBounds(600, akt_position, 121, 24);
      jTextField5_1[i].setText("Textfeld");
      jComboBox1_1[i].setBounds(448, akt_position, 145, 24);

      jButton1_1[i].setBounds(728, akt_position, 120, 25);
      jButton1_1[i].setText("Button");
      jButton1_1[i].addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
          neueZeile(getZeilenNummer());
        }
      });
      jsb.setViewportView(cp);
      repaint();
    }

    cp.add(jTextField1_1[getZeilenNummer()]);
    cp.add(jTextField2_1[getZeilenNummer()]);
    cp.add(jTextField3_1[getZeilenNummer()]);
    cp.add(jTextField4_1[getZeilenNummer()]);
    cp.add(jComboBox1_1[getZeilenNummer()]);
    cp.add(jTextField5_1[getZeilenNummer()]);
    cp.add(jButton1_1[getZeilenNummer()]);
    erhöheZeilenNummer();
  }

  public example(String title) {
    // Frame-Initialisierung
    super(title);
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent evt) { System.exit(0); }
    });
    int frameWidth = 1005;
    int frameHeight = 329;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2 ;
    setLocation(x, y);
    cp.setLayout(null);
    // Anfang Komponenten

    jTextField1.setBounds(16, 48, 41, 24);
    jTextField1.setText("Textfeld");
    cp.add(jTextField1);
    jTextField2.setBounds(64, 48, 121, 24);
    jTextField2.setText("Textfeld");
    cp.add(jTextField2);
    jTextField3.setBounds(192, 48, 121, 24);
    jTextField3.setText("Textfeld");
    cp.add(jTextField3);
    jTextField4.setBounds(320, 48, 121, 24);
    jTextField4.setText("Textfeld");
    cp.add(jTextField4);
    jTextField6.setBounds(600, 48, 121, 24);
    jTextField6.setText("Textfeld");
    cp.add(jTextField6);
    jComboBox1.setBounds(448, 48, 145, 24);
    cp.add(jComboBox1);

    jLabel1.setBounds(16, 32, 44, 16);
    jLabel1.setText("Label");
    jLabel1.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(jLabel1);
    jLabel2.setBounds(64, 32, 124, 16);
    jLabel2.setText("Label");
    jLabel2.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(jLabel2);
    jLabel3.setBounds(192, 32, 124, 16);
    jLabel3.setText("Label");
    jLabel3.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(jLabel3);
    jLabel4.setBounds(320, 32, 124, 16);
    jLabel4.setText("Label");
    jLabel4.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(jLabel4);
    jLabel5.setBounds(448, 32, 148, 16);
    jLabel5.setText("Label");
    jLabel5.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(jLabel5);
    jLabel6.setBounds(600, 32, 124, 16);
    jLabel6.setText("Label");
    jLabel6.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(jLabel6);
    jButton1.setBounds(728, 48, 120, 25);
    jButton1.setText("Button");
    cp.add(jButton1);
    jButton1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        neueZeile(getZeilenNummer());
      }
    });
    getContentPane().add(cp);
    jsb.setViewportView(cp);
    getContentPane().add(jsb);
    jsb.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    jsb.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    // Ende Komponenten

    setResizable(true);
    setVisible(true);
  }

  public static void main(String[] args) {
    new example("example");
  }
}
Ich finde, sollte das funktionieren, aber es geht nicht.
Vielleicht solltest du ein anderes Layout verwenden.
 
hmm... hab alle Layouts ausprobiert, keins hat funktioniert!!!
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben