Ho sviluppato la seguente classe al fine di produrre una scelta tra 2 alternative di percorsi
Siccome i punti del percorso sono tanti, vanno al di là del limite della finestra
codice:
package view;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.SpringLayout;


import controller.ReservationController;
import model.Percorso;
import model.Reservation;


public class PathChoicePanel extends JPanel implements ActionListener{


	ButtonGroup radioButtonGroup;
	JRadioButton percorsoBreve;
	JRadioButton percorsoVeloce;
	JButton button;


	MyFrame myFrame;


	Reservation reservation;
	Percorso percorsoPiuBreve;
	Percorso percorsoPiuVeloce;


	public PathChoicePanel(MyFrame myFrame){
		super();
		this.myFrame=myFrame;


		radioButtonGroup = new ButtonGroup();
		percorsoBreve = new JRadioButton("percorso più breve");
		percorsoVeloce = new JRadioButton("percorso più veloce");
		radioButtonGroup.add(percorsoBreve);
		radioButtonGroup.add(percorsoVeloce);
		button = new JButton("prenota");


		button.addActionListener(this);


		SpringLayout layout = new SpringLayout();
		setLayout(layout);
		
		
		add(percorsoBreve);
		add(percorsoVeloce);
		add(button);
		
		layout.putConstraint(SpringLayout.NORTH, percorsoBreve, 50, SpringLayout.NORTH, this);
		layout.putConstraint(SpringLayout.WEST, percorsoBreve, 35, SpringLayout.WEST, this);
		
		layout.putConstraint(SpringLayout.NORTH, percorsoVeloce, 50, SpringLayout.NORTH, percorsoBreve);
		layout.putConstraint(SpringLayout.WEST, percorsoVeloce, 35, SpringLayout.WEST, this);
		
		layout.putConstraint(SpringLayout.NORTH, button, 50, SpringLayout.NORTH, percorsoVeloce);
		layout.putConstraint(SpringLayout.WEST, button, 35, SpringLayout.WEST, this);


	}


	public void init(Reservation reservation, Percorso percorsoPiuBreve, Percorso percorsoPiuVeloce){
		this.reservation=reservation;
		this.percorsoPiuBreve=percorsoPiuBreve;
		this.percorsoPiuVeloce=percorsoPiuVeloce;
		this.percorsoBreve.setText(this.percorsoBreve.getText()+": "+percorsoPiuBreve.toString()+" costo: "+percorsoPiuBreve.getCosto());
		this.percorsoVeloce.setText(this.percorsoVeloce.getText()+": "+percorsoPiuVeloce.toString()+" costo: "+percorsoPiuVeloce.getCosto());
	}


	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getSource().equals(button)){
			if(!percorsoBreve.isSelected() && !percorsoVeloce.isSelected()){
				JOptionPane.showMessageDialog(this, "seleziona un percorso", "Error", JOptionPane.ERROR_MESSAGE);
			}else{
				if(percorsoBreve.isSelected()){
					reservation.setPercorso(percorsoPiuBreve);
					reservation.getTaxi().effettuaCorsa(percorsoPiuBreve);
				}else{
					reservation.getTaxi().effettuaCorsa(percorsoPiuVeloce);
					reservation.setPercorso(percorsoPiuVeloce);
				}
				ReservationController.getInstance().addReservation(reservation);
				myFrame.showReservationDetailPanel(reservation);
			}
		}
	}


}
Come posso fare in modo che a prescindere dal numero di punti elencati la finestra generata diventi di quella larghezza senza che alcuni punti spariscano?