Archief - [PROG]JAVA JScrollPane probleem

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

saavres

Legacy Member
hallo iedereen, ik ben een programma aant maken en kheb een probleem met mijn JScrollpane te implementeren in een JList
Code:
package GUI;

import java.awt.BorderLayout;
import java.util.List;
import javax.swing.BorderFactory;

import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.ListModel;
import javax.swing.event.*;

import javax.swing.WindowConstants;
import javax.swing.border.BevelBorder;
import javax.swing.border.LineBorder;
import javax.swing.border.SoftBevelBorder;
import javax.swing.SwingUtilities;

import Domein.Gegevens;
import Persistentie.Persistentie;


public class Gui extends javax.swing.JFrame {
	private JButton VoegToe;
	private JTextField persoonkiezer;
	private JLabel banner;
	private JTextField setDBID;
	private JTextField Databaseid;
	private JTextArea setAdres;
	private JTextField setGsmnummer;
	private JTextField setTelefoonnummer;
	private JTextField setEmail;
	private JTextField Adres;
	private JTextField setVoornaam;
	private JTextField setNaam;
	private JTextField Gsmnummer;
	private JTextField Telefoonnummer;
	private JScrollBar scorllbar;
	private JTextField Email;
	private JTextField Voornaam;
	private JTextField Naam;
	private JList Namen;
	private JButton Wijzigpersoon;
	Persistentie persi = new Persistentie();
	
	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				Gui inst = new Gui();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	public Gui() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			this.setTitle("Adresboek ");
			this.setResizable(false);
			getContentPane().setLayout(null);
			{
				VoegToe = new JButton();
				getContentPane().add(VoegToe);
				VoegToe.setText("Persoon toevoegen");
				VoegToe.setBounds(19, 431, 243, 46);
			}
			{
				Wijzigpersoon = new JButton();
				getContentPane().add(Wijzigpersoon);
				Wijzigpersoon.setText("Wijzig gegevens");
				Wijzigpersoon.setBounds(19, 494, 243, 45);
			}
			{
				
				List<String> lijstnamen = persi.geefNamen();
				String[] namenarray = (String[])lijstnamen.toArray(new String[lijstnamen.size()]);
				getContentPane().add(Namen);
			
				Namen.setBounds(18, 109, 243, 99);
				Namen.setFont(new java.awt.Font("Segoe UI",1,16));
				Namen.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
				Namen.addListSelectionListener(new ListSelectionListener()
				{
				      public void valueChanged(ListSelectionEvent evt)
				      {
				          
				    	  int getal = Namen.getSelectedIndex();
				    	  Ophalen(getal);
				    	  
				       }
				      });
				JScrollPane scrollPane = new JScrollPane(Namen);
				add(scrollPane,BorderLayout.CENTER);
				
	
			}
			{
				Naam = new JTextField();
				getContentPane().add(Naam);
				Naam.setText("Naam:");
				Naam.setBounds(371, 138, 78, 24);
				Naam.setEditable(false);
				Naam.setFont(new java.awt.Font("Segoe UI",1,18));
				Naam.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
			}
			{
				Voornaam = new JTextField();
				getContentPane().add(Voornaam);
				Voornaam.setText("Voornaam:");
				Voornaam.setEditable(false);
				Voornaam.setFont(new java.awt.Font("Segoe UI",1,18));
				Voornaam.setBounds(371, 184, 107, 24);
				Voornaam.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
			}
			{
				Adres = new JTextField();
				getContentPane().add(Adres);
				Adres.setText("Adres:");
				Adres.setEditable(false);
				Adres.setFont(new java.awt.Font("Segoe UI",1,18));
				Adres.setBounds(371, 231, 96, 24);
				Adres.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
			}
			{
				Email = new JTextField();
				getContentPane().add(Email);
				Email.setText("Email:");
				Email.setEditable(false);
				Email.setFont(new java.awt.Font("Segoe UI",1,18));
				Email.setBounds(372, 344, 85, 24);
				Email.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
			}
			{
				Telefoonnummer = new JTextField();
				getContentPane().add(Telefoonnummer);
				Telefoonnummer.setText("Telefoonnummer:");
				Telefoonnummer.setEditable(false);
				Telefoonnummer.setFont(new java.awt.Font("Segoe UI",1,18));
				Telefoonnummer.setBounds(371, 387, 158, 24);
				Telefoonnummer.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
			}
			{
				Gsmnummer = new JTextField();
				getContentPane().add(Gsmnummer);
				Gsmnummer.setText("Gsm nummer:");
				Gsmnummer.setEditable(false);
				Gsmnummer.setFont(new java.awt.Font("Segoe UI",1,18));
				Gsmnummer.setBounds(372, 431, 158, 24);
				Gsmnummer.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
			}
			{
				setNaam = new JTextField();
				getContentPane().add(setNaam);
				setNaam.setBounds(455, 138, 309, 24);
				setNaam.setFont(new java.awt.Font("Segoe UI",3,16));
				
				setNaam.setEditable(false);
				setNaam.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
			}
			{
				setVoornaam = new JTextField();
				getContentPane().add(setVoornaam);
				setVoornaam.setBounds(478, 184, 279, 24);
				setVoornaam.setEditable(false);
				setVoornaam.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
				setVoornaam.setFont(new java.awt.Font("Segoe UI",3,16));
				
			}
			{
				setEmail = new JTextField();
				getContentPane().add(setEmail);
				setEmail.setBounds(441, 344, 331, 24);
				setEmail.setFont(new java.awt.Font("Segoe UI",3,16));
				setEmail.setEditable(false);
				setEmail.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
			}
			{
				setTelefoonnummer = new JTextField();
				getContentPane().add(setTelefoonnummer);
				setTelefoonnummer.setBounds(535, 387, 245, 24);
				setTelefoonnummer.setFont(new java.awt.Font("Segoe UI",3,16));
				setTelefoonnummer.setEditable(false);
				setTelefoonnummer.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
			}
			{
				setGsmnummer = new JTextField();
				getContentPane().add(setGsmnummer);
				setGsmnummer.setBounds(520, 431, 210, 24);
				setGsmnummer.setFont(new java.awt.Font("Segoe UI",3,16));
				setGsmnummer.setEditable(false);
				setGsmnummer.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
			}
			{
				setAdres = new JTextArea();
				getContentPane().add(setAdres);
				setAdres.setBounds(479, 233, 216, 99);
				setAdres.setFont(new java.awt.Font("Segoe UI",3,16));
				setAdres.setEditable(false);
				setAdres.setBackground(new java.awt.Color(255,255,255));
				setAdres.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
				setAdres.setOpaque(false);
				
			}
			{
				Databaseid = new JTextField();
				getContentPane().add(Databaseid);
				Databaseid.setText("DB ID:");
				Databaseid.setBounds(371, 95, 107, 24);
				Databaseid.setFont(new java.awt.Font("Segoe UI",1,18));
				Databaseid.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
				Databaseid.setEditable(false);
			}
			{
				setDBID = new JTextField();
				getContentPane().add(setDBID);
				setDBID.setBounds(478, 95, 145, 24);
				setDBID.setFont(new java.awt.Font("Segoe UI",3,16));
				setDBID.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
				setDBID.setEditable(false);
			}
			{
				banner = new JLabel();
				getContentPane().add(banner);
				banner.setIcon(new ImageIcon(getClass().getClassLoader().getResource("adresboek.jpg")));
				banner.setBounds(0, 0, 799, 79);
			}
			{
				
				persoonkiezer = new JTextField();
				getContentPane().add(persoonkiezer);
				persoonkiezer.setText("Kies een persoon:");
				persoonkiezer.setBounds(49, 74, 177, 34);
				persoonkiezer.setEditable(false);
				persoonkiezer.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
				persoonkiezer.setFont(new java.awt.Font("Segoe UI",1,20));
		
				
			}
			
			pack();
			setSize(800, 600);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}


	public void Ophalen(int getal)
	{
		String adres = "";
		getal++;
		Gegevens Gegevens = persi.gegevens(getal);
		setNaam.setText(String.format("%s",Gegevens.getNaam()));
		setVoornaam.setText(String.format("%s", Gegevens.getVoornaam()));
		setEmail.setText(String.format("%s",Gegevens.getEmail()));
		setDBID.setText(String.format("%s", Gegevens.getIdnr()));
		setTelefoonnummer.setText(String.format("%s",Gegevens.getTelefoonnr()));
		adres+=String.format("%s %s\n%s %s\n%s",Gegevens.getStraat(),Gegevens.getNummer(),Gegevens.getPostcode(),Gegevens.getStad(),Gegevens.getLand());
		setAdres.setText(adres);
	}
}
Dus met in dit stukje wil ik graag de JList combineren met een Scrollbar? Weet iemand raad?

Code:
				List<String> lijstnamen = persi.geefNamen();
				String[] namenarray = (String[])lijstnamen.toArray(new String[lijstnamen.size()]);
				getContentPane().add(Namen);
			
				Namen.setBounds(18, 109, 243, 99);
				Namen.setFont(new java.awt.Font("Segoe UI",1,16));
				Namen.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
				Namen.addListSelectionListener(new ListSelectionListener()
				{
				      public void valueChanged(ListSelectionEvent evt)
				      {
				          
				    	  int getal = Namen.getSelectedIndex();
				    	  Ophalen(getal);
				    	  
				       }
				      });
				JScrollPane scrollPane = new JScrollPane(Namen);
				add(scrollPane,BorderLayout.CENTER);

Oldskooler

Legacy Member
Namen.setBounds(18, 109, 243, 99) mag al niet denk, die scrollPane moet setbounds krijgen.

Of ge moet uwen borderlayout nog instellen, en het niet laten bij setlayout(null).

1 van die 2 zal het wel zijn.

forloRn_

Legacy Member
Je moet je JList in een JScrollPane steken en dat adden aan je ContentPane.

By the way: namen van methods, variabelen en packages beginnen met een kleine letter, en dit:

Code:
Gegevens Gegevens = persi.gegevens(getal);

gaat al zeker niet compileren.

saavres

Legacy Member
Gegeven Gegevens = persi......
compiled wel. Bedankt voor tips. Vooral Oldskooler vree bedankt. Twas idd met dienen setbounds. Merci
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan