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
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?