jscrollpane

headnut

Gesperrter Benutzer
Guten tag

Ich bin am verzweifeln bei einem aus meiner sicht einfachen Thema...

Java:
		SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				ParaEing inst1 = new ParaEing(artikelnummer);
				inst1.setLocationRelativeTo(null);
				inst1.setVisible(true);
				inst1.setTitle("Parameter - Eingabe");
				inst1.setResizable(false);
				inst1.setSize(800, 825);

			}
		});
	}

Hier starte ich mein GUI, und hier unten füge ich dem Conten eine Scrollpane zu:

Java:
	public ParaEing(String artikelnummer) {
		super();
		initGUI(artikelnummer);
	}

Java:
	private void initGUI(final String artikelnummer) {
		try {
			
			{
				jScrollPane = new JScrollPane();
				jScrollPane.createVerticalScrollBar();
				
				jScrollPane.setOpaque(true);
				getContentPane().add(jScrollPane);
			}

jedoch fehlanzeige ich kann nicht scrollen, was mache ich falsch?
Gruss und dank
 
Könnte sein, dass du trotz Allem noch einen Inhalt benötigst, der größer als die Fläche der JScrollPane ist. 😉 Es gibt quasi nichts zu scrollen...
 
ihr habt es nicht anders gewollt🙂

Ich habe sehr wohl inhalt, aber nur Buttons und textfelder:

Java:
for (int i = 0; i < daten.size(); i++) {
				bezeichnung[i] = daten.get(i).toString();
			}

			{
				jLSollWert = new JLabel();
				getContentPane().add(jLSollWert);
				jLSollWert.setText("Sollwert");
				jLSollWert.setBounds(150, 20, 84, 37);
				jLSollWert.setFont(new java.awt.Font("Tahoma", 0, 20));
			}
			{
				jLToleranzMinus = new JLabel();
				getContentPane().add(jLToleranzMinus);
				jLToleranzMinus.setText("Toleranz -");
				jLToleranzMinus.setFont(new java.awt.Font("Tahoma", 0, 20));
				jLToleranzMinus.setBounds(430, 20, 102, 37);
			}
			{
				jLToleranzPlus = new JLabel();
				getContentPane().add(jLToleranzPlus);
				jLToleranzPlus.setText("Toleranz +");
				jLToleranzPlus.setBounds(290, 20, 101, 37);
				jLToleranzPlus.setFont(new java.awt.Font("Tahoma", 0, 20));
			}
			{
				jTBezeichnung = new JLabel();
				getContentPane().add(jTBezeichnung);
				jTBezeichnung.setText("Bezeichnung");
				jTBezeichnung.setBounds(570, 20, 121, 37);
				jTBezeichnung.setFont(new java.awt.Font("Tahoma", 0, 20));
			}

			int abst = 50;
			for (int i = 0; i < soll.length; i++) {

				{
					jLabel[i] = new JLabel();
					getContentPane().add(jLabel[i]);
					jLabel[i].setText(String.valueOf(i+1));
					jLabel[i].setBounds(50, 100 + (i * abst), 21, 26);
					jLabel[i].setFont(new java.awt.Font("Tahoma", 0, 18));
				}
				{
					jTwert[i] = new JTextField();
					getContentPane().add(jTwert[i]);
					jTwert[i].setBounds(150, 100 + (i * abst), 75, 26);
					jTwert[i].setText(soll[i].getWertString());
					jTwert[i].setFont(new java.awt.Font("Tahoma", 0, 18));

				}
				{
					jTtoleranzp[i] = new JTextField();
					getContentPane().add(jTtoleranzp[i]);
					jTtoleranzp[i].setFont(new java.awt.Font("Tahoma", 0, 18));
					jTtoleranzp[i].setBounds(300, 100 + (i * abst), 75, 26);
					jTtoleranzp[i].setText(soll[i].getToleranzpString());

				}
				{
					jTtoleranzn[i] = new JTextField();
					getContentPane().add(jTtoleranzn[i]);
					jTtoleranzn[i].setFont(new java.awt.Font("Tahoma", 0, 18));
					jTtoleranzn[i].setBounds(445, 100 + (i * abst), 75, 26);
					jTtoleranzn[i].setText(soll[i].getToleranznString());
				}
				{
					jComboBoxModel[i] = new DefaultComboBoxModel(
							new String[] { soll[i].getBezeichnung() });
					jCbez[i] = new JComboBox();
					getContentPane().add(jCbez[i]);
					jCbez[i].setModel(jComboBoxModel[i]);
					jCbez[i].setBounds(570, 100 + (i * abst), 195, 26);
					jCbez[i].setMaximumRowCount(20);
					for (int j = 0; j < bezeichnung.length; j++)
						jCbez[i].addItem(bezeichnung[j]);
				}

			}

			jTwert[0].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTwert[0].selectAll();
				}
			});

			jTwert[1].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTwert[1].selectAll();
				}
			});

			jTwert[2].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTwert[2].selectAll();
				}
			});

			jTwert[3].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTwert[3].selectAll();
				}
			});

			jTwert[4].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTwert[4].selectAll();
				}
			});

			jTwert[5].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTwert[5].selectAll();
				}
			});

			jTwert[6].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTwert[6].selectAll();
				}
			});

			jTwert[7].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTwert[7].selectAll();
				}
			});

			jTwert[8].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTwert[8].selectAll();
				}
			});

			jTwert[9].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTwert[9].selectAll();
				}
			});

			// Toleranz positiv
			jTtoleranzp[0].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzp[0].selectAll();
				}
			});

			jTtoleranzp[1].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzp[1].selectAll();
				}
			});

			jTtoleranzp[2].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzp[2].selectAll();
				}
			});

			jTtoleranzp[3].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzp[3].selectAll();
				}
			});

			jTtoleranzp[4].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzp[4].selectAll();
				}
			});

			jTtoleranzp[5].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzp[5].selectAll();
				}
			});

			jTtoleranzp[6].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzp[6].selectAll();
				}
			});

			jTtoleranzp[7].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzp[7].selectAll();
				}
			});

			jTtoleranzp[8].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzp[8].selectAll();
				}
			});

			jTtoleranzp[9].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzp[9].selectAll();
				}
			});

			// Toleranzen Negativ
			jTtoleranzn[0].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzn[0].selectAll();
				}
			});

			jTtoleranzn[1].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzn[1].selectAll();
				}
			});

			jTtoleranzn[2].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzn[2].selectAll();
				}
			});

			jTtoleranzn[3].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzn[3].selectAll();
				}
			});

			jTtoleranzn[4].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzn[4].selectAll();
				}
			});

			jTtoleranzn[5].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzn[5].selectAll();
				}
			});

			jTtoleranzn[6].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzn[6].selectAll();
				}
			});

			jTtoleranzn[7].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzn[7].selectAll();
				}
			});

			jTtoleranzn[8].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzn[8].selectAll();
				}
			});

			jTtoleranzn[9].addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent evt) {
					jTtoleranzn[9].selectAll();
				}
			});

			{
				jBspeichern = new JButton();
				getContentPane().add(jBspeichern);
				jBspeichern.setText("Speichern");
				jBspeichern.setBounds(12, 709, 122, 46);
				jBspeichern.setFont(new java.awt.Font("Tahoma", 0, 14));
				jBspeichern.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent evt) {
						System.out.println("Speichern");
						auslesen();
						version();
						try {
							ExcelSoll.DatenSpeichern(artikelnummer,
									soll[0].getVersion());

							// Datum aktualisieren
							SimpleDateFormat Datum = new SimpleDateFormat(
									"dd.MMM.yyyy");
							SimpleDateFormat Zeit = new SimpleDateFormat(
									"HH:mm:ss");
							Date date = new Date();

							jLdatumAusgabe.setText(Datum.format(date));
							jLzeitAusgabe.setText(Zeit.format(date));

						} catch (RowsExceededException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						} catch (Exception e) {
							Meldungen2 meldungen = new Meldungen2();
							meldungen.geoeffnetFehler(2);

							// TODO Auto-generated catch block
							e.printStackTrace();
						}
						setVisible(false);
					}
				});
			}

			{
				jLartNr = new JLabel();
				getContentPane().add(jLartNr);
				jLartNr.setBounds(304, 2520, 135, 26);
				jLartNr.setFont(new java.awt.Font("Tahoma", 0, 18));
				jLartNr.setBackground(new java.awt.Color(255, 255, 255));
				jLartNr.setText(artikelnummer);
			}
			{
				jLArtikelnummer = new JLabel();
				getContentPane().add(jLArtikelnummer);
				jLArtikelnummer.setText("Artikelnummer:");
				jLArtikelnummer.setBounds(150, 2520, 129, 26);
				jLArtikelnummer.setFont(new java.awt.Font("Tahoma", 0, 18));
			}
			{
				jLversion = new JLabel();
				getContentPane().add(jLversion);
				jLversion.setText("Version:");
				jLversion.setFont(new java.awt.Font("Tahoma", 0, 18));
				jLversion.setBounds(150, 2570, 129, 26);
			}
			{
				jLversionAusgabe = new JLabel();
				getContentPane().add(jLversionAusgabe);
				jLversionAusgabe.setText(soll[0].getVersionString());
				jLversionAusgabe
						.setBackground(new java.awt.Color(255, 255, 255));
				jLversionAusgabe.setFont(new java.awt.Font("Tahoma", 0, 18));
				jLversionAusgabe.setBounds(304, 2570, 135, 26);
			}
			{
				jLnutzer = new JLabel();
				getContentPane().add(jLnutzer);
				jLnutzer.setText("Nutzer:");
				jLnutzer.setFont(new java.awt.Font("Tahoma", 0, 18));
				jLnutzer.setBounds(444, 2520, 80, 27);
			}
			{
				jLdatum = new JLabel();
				getContentPane().add(jLdatum);
				jLdatum.setText("Datum:");
				jLdatum.setFont(new java.awt.Font("Tahoma", 0, 18));
				jLdatum.setBounds(444, 2570, 80, 27);
			}
			{
				jLzeit = new JLabel();
				getContentPane().add(jLzeit);
				jLzeit.setText("Zeit:");
				jLzeit.setFont(new java.awt.Font("Tahoma", 0, 18));
				jLzeit.setBounds(444, 2620, 80, 27);
			}
			{
				jLnutzerAusgabe = new JLabel();
				getContentPane().add(jLnutzerAusgabe);
				jLnutzerAusgabe.setText(soll[0].getGespNutzer());
				jLnutzerAusgabe
						.setBackground(new java.awt.Color(255, 255, 255));
				jLnutzerAusgabe.setFont(new java.awt.Font("Tahoma", 0, 18));
				jLnutzerAusgabe.setBounds(572, 2520, 135, 26);
			}
			{
				jLdatumAusgabe = new JLabel();
				getContentPane().add(jLdatumAusgabe);
				jLdatumAusgabe.setText(soll[0].getDatum());
				jLdatumAusgabe.setBackground(new java.awt.Color(255, 255, 255));
				jLdatumAusgabe.setFont(new java.awt.Font("Tahoma", 0, 18));
				jLdatumAusgabe.setBounds(572, 2570, 135, 26);
			}
			{
				jLzeitAusgabe = new JLabel();
				getContentPane().add(jLzeitAusgabe);
				jLzeitAusgabe.setText(soll[0].getZeit());
				jLzeitAusgabe.setBackground(new java.awt.Color(255, 255, 255));
				jLzeitAusgabe.setFont(new java.awt.Font("Tahoma", 0, 18));
				jLzeitAusgabe.setBounds(570, 2620, 135, 26);
			}

			pack();
			this.setSize(800, 825);
		} catch (Exception e) {
			// add your error handling code here
			e.printStackTrace();
		}
 
> Ich habe sehr wohl inhalt, aber nur Buttons und textfelder:

in solchen Fällen gilt immer:
mit EINER Komponente testen, einer besonders einfachen, nur wenige bis eine Zeile Code,
deine 400 oder 400.000 Codezeilen, für sich schlimm genug und auf andere Weise noch zu verbessern, nützen niemanden etwas
 
hab ich sehr wohl gemacht

Soll das heissen ich muss alle Buttons und textfelder nicht dem contentPane() zuweisen sondern
der jScrollpane?
 
ja, genau wie es in dem Link steht, den du dir angeschaut hast 😉

bzw. auch nicht direkt dem JScrollPane sondern einfach exakt nachschauen und korrekt vorgehen
(edit: ok, steht da nicht unbedingt, also z.b. ein JPanel auf korrekte Weise ins JScrollPane, nicht add(),
und alles weitere ins JPanel)
 
Hab jetzt mal ein kleines Beispiel aufgebaut, nur leider funktioniert dies auch nciht:-(

Java:
import java.awt.Dimension;

import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;

public class test extends javax.swing.JFrame {
	private JScrollPane jScrollPane1;
	private JButton jButton1;
	private JButton jButton3;
	private JButton jButton2;
	private JPanel jPanel1;

	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				test inst = new test();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	public test() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			{
				jScrollPane1 = new JScrollPane();
				jScrollPane1.setPreferredSize(new Dimension(200, 200));
				getContentPane().add(jScrollPane1);
				
				{
					jPanel1 = new JPanel();
					jScrollPane1.setViewportView(jPanel1);
					jPanel1.setSize(200, 400);
					jPanel1.setLayout(null);
					
					{
						jButton1 = new JButton();
						jPanel1.add(jButton1);
						jButton1.setText("jButton1");
						jButton1.setBounds(12, 30, 55, 21);
					}
					{
						jButton2 = new JButton();
						jPanel1.add(jButton2);
						jButton2.setText("jButton2");
						jButton2.setBounds(24, 98, 55, 21);
					}
				}
			}
			{
				jButton3 = new JButton();
				getContentPane().add(jButton3);
				jButton3.setText("jButton3");
				jButton3.setBounds(30, 374, 55, 21);
			}
			pack();
			
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}

}
 
inwiefern funktioniert es nicht? deine Mitteilsamkeit..

wenn ich dann aus eigenen Ausprobieren schließen muss:
es ist erstmal überhaupt nichts zu sehen, du hast null-Layout aber keine setBounds()-Aufrufe für Komponenten
(edit: zumindest für jScrollPane1 im ContentPane nicht)
der Befehl pack() ist generell auch Gift bei null-Layout

mit JScrollPane hat das erstmal gar nichts mehr zu tun, fange ganz grundlegend an, überhaupt eine erste Komponente in der GUI zu zeigen
(hast du vielleicht schon angesichts hunderter Zeilen Code vorher, dann aber bitte bisschen bei Beispielcode aufpassen)

edit:
zusammengeflickt noch ein Programm daraus mit angezeigten ScrollBalken,
PreferredSize fürs Panel im ScrollPane ist wichtig,
wenn null-Layout, dann manuell zu setzen

Java:
public class Test
{
    public static void main(String... args)
        throws Exception
    {
        SwingUtilities.invokeLater(new Runnable()
            {
                public void run()
                {
                    Tf inst = new Tf();
                    inst.setSize(300, 300);
                    inst.setLocationRelativeTo(null);
                    inst.setVisible(true);
                }
            });
    }
}


class Tf
    extends javax.swing.JFrame
{
    private JScrollPane jScrollPane1;
    private JButton jButton1;
    private JButton jButton3;
    private JButton jButton2;
    private JPanel jPanel1;

    public Tf()
    {
        super();
        initGUI();
    }

    private void initGUI()
    {
        try
        {
            setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
            getContentPane().setLayout(null);
            {
                jScrollPane1 = new JScrollPane();
                // jScrollPane1.setPreferredSize(new Dimension(200, 200));
                jScrollPane1.setBounds(20, 20, 200, 200);
                getContentPane().add(jScrollPane1);

                {
                    jPanel1 = new JPanel();
                    jScrollPane1.setViewportView(jPanel1);
                    jPanel1.setSize(600, 400);
                    jPanel1.setPreferredSize(new Dimension(600, 400));
                    jPanel1.setLayout(null);

                    {
                        jButton1 = new JButton();
                        jPanel1.add(jButton1);
                        jButton1.setText("jButton1");
                        jButton1.setBounds(12, 30, 55, 21);
                    }
                    {
                        jButton2 = new JButton();
                        jPanel1.add(jButton2);
                        jButton2.setText("jButton2");
                        jButton2.setBounds(424, 98, 55, 21);
                    }
                }
            }
            {
                jButton3 = new JButton();
                getContentPane().add(jButton3);
                jButton3.setText("jButton3");
                jButton3.setBounds(30, 374, 55, 21);
            }
            // pack();

        }
        catch (Exception e)
        {
            // add your error handling code here
            e.printStackTrace();
        }
    }
}
 
Zuletzt bearbeitet von einem Moderator:

Neue Themen


Zurück
Oben