Allora dovresti postare più codice (in generale cerca di mettere già subito un esempio compilabile ed eseguibile, così si risolve in molto meno tempo) perché aggiungendo l'essenziale per compilare ed eseguire io non ottengo nessuna distanza, sono perfettamente attaccati ...
Ho fatto copia incolla e aggiunto poche righe:
import java.awt.*;
import java.util.ArrayList;
import javax.swing.*;
public class TestDistanza
{
public static void main (String [] args) {
JFrame frame = new JFrame ("Test");
JPanel c = new JPanel (new GridBagLayout ());
GridBagConstraints gc = new GridBagConstraints ();
JLabel titleTest = new JLabel("Testimonianze dei nostri clienti");
gc.insets.bottom = 0;
gc.gridx = 1;
gc.gridy = 5;
gc.anchor = GridBagConstraints.LINE_START;
c.add(titleTest, gc);
JPanel test = new JPanel();
gc.gridx = 0;
gc.gridy = 6;
gc.gridwidth = 3;
gc.fill = GridBagConstraints.BOTH;
test.setBorder(BorderFactory.createLineBorder(Color.BLACK));
test.setLayout(new GridBagLayout());
GridBagConstraints gctest = new GridBagConstraints();
c.add(test, gc);
int i;
int n = 0;
ArrayList <Testimonianza> testimonianze = new ArrayList <Testimonianza> ();
testimonianze.add (new Testimonianza (new Tesserato ("Pippo"), "Terrore", "La peggiore esperienza della mia vita, spaventoso !!"));
testimonianze.add (new Testimonianza (new Tesserato ("Pluto"), "Noioso", "Il tempo non passava mai ..."));
if(testimonianze.size() > 0)
{
for(i=0; i<testimonianze.size(); i++)
{
Testimonianza t = testimonianze.get(i);
JLabel nomeTesserato = new JLabel("Da " + t.getTesserato().getNome());
gctest.gridx = 0;
gctest.gridy = n;
gctest.fill = GridBagConstraints.BOTH;
gctest.insets.top = 5;
gctest.anchor = GridBagConstraints.LINE_START;
test.add(nomeTesserato, gctest);
JLabel titolo = new JLabel('"' + t.getTitolo() + '"');
titolo.setFont(new Font(null,Font.ITALIC,16));
gctest.gridx = 0;
gctest.gridy = n+1;
gctest.gridwidth = 3;
gctest.anchor = GridBagConstraints.LINE_START;
test.add(titolo, gctest);
JTextArea text = new JTextArea(t.getDescrizione(), 3, 45);
gctest.gridx = 0;
gctest.gridy = n+2;
gctest.gridwidth = 3;
gctest.anchor = GridBagConstraints.LINE_START;
text.setLineWrap(true);
text.setEditable(false);
text.setBackground(new Color(255, 255, 255, 0));
test.add(text, gctest);
n=n+3;
}
}
else
{
JLabel noTest = new JLabel("Nessun cliente ha scritto una testimonianza...");
gctest.gridx = 1;
gctest.gridy = n;
gctest.gridwidth = 3;
gctest.anchor = GridBagConstraints.CENTER;
noTest.setFont(new Font(null,Font.ITALIC ,16));
test.add(noTest, gctest);
}
frame.setContentPane (c);
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.pack ();
frame.setLocationRelativeTo (null);
frame.setVisible (true);
}
}
class Testimonianza
{
private String titolo, descrizione;
private Tesserato tesserato;
Testimonianza (Tesserato tesserato, String titolo, String descrizione) {
this.tesserato = tesserato;
this.titolo = titolo;
this.descrizione = descrizione;
}
public Tesserato getTesserato () {
return tesserato;
}
public String getTitolo () {
return titolo;
}
public String getDescrizione () {
return descrizione;
}
}
class Tesserato
{
private String nome;
public Tesserato (String nome) {
this.nome = nome;
}
public String getNome () {
return nome;
}
}
E ottengo questo risultato:
Allegati: