JScrollPane wird in JTextArea nicht angezeigt
Ich habe das nächste Problem, JScrollPane wird nicht auf JTextArea angezeigt und ich weiß nicht warum? Ich habe es auf viele Arten versucht, aber nichts, es will es mir nicht zeigen! Ich habe unten einen Teil des Codes eingefügt. Alles wird korrekt angezeigt, JFame, JTextArea, Text in JTextArea, alles ohne JScrollPane. Kann mir bitte jemand helfen?
package pachet;
import java.awt.BorderLayout;
import java.awt.Container;
import java.util.ArrayList;
import javax.swing.GroupLayout;
import static javax.swing.GroupLayout.Alignment.BASELINE;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import static javax.swing.LayoutStyle.ComponentPlacement.RELATED;
public class Design {
private final JFrame x;
private final JPanel panou_rezultate=new JPanel();
private final JLabel aziL=new JLabel("Azi");
private final JLabel saptamanaL=new JLabel("Ultimile 7 zile");
private final JLabel lunaL=new JLabel("Ultimile 30 zile");
private final JLabel totalL=new JLabel("De la inceput");
private final JTextArea aziArea=new JTextArea(30,60);
private final JTextArea saptamanaArea=new JTextArea(30,60);
private final JTextArea lunaArea=new JTextArea(30,60);
private final JTextArea totalArea=new JTextArea(30,60);
private final JScrollPane totalScrol=new JScrollPane(totalArea,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); //here it is created scroll
public Design(JFrame x) {
this.x = x;
functie();
}
private void functie(){
x.add(panou_rezultate,BorderLayout.CENTER);
panou_rezultate.setLayout(metoda());
panou_rezultate.add(totalScrol); //here is added scroll to panel
PrelucrareDate y=new PrelucrareDate();
aziArea.setText(y.getAziP());
String abc="";
for(int i=0; i<1000; i++){
abc=abc+"she is beautiful\n";
}
totalArea.setText(abc); //totalArea text area is filled by many sentences, so scroll must appear
}
public GroupLayout metoda(){
GroupLayout gl= new GroupLayout(panou_rezultate);
panou_rezultate.setLayout(gl);
gl.setAutoCreateGaps(true);
gl.setAutoCreateContainerGaps(true);
GroupLayout.SequentialGroup sg=gl.createSequentialGroup();
sg.addGroup(gl.createParallelGroup(GroupLayout.Alignment.CENTER) //de schimbat
.addComponent(aziL)
.addComponent(aziArea)
);
sg.addPreferredGap(RELATED,
GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE);
sg.addGroup(gl.createParallelGroup(GroupLayout.Alignment.CENTER) //de schimbat
.addComponent(saptamanaL)
.addComponent(saptamanaArea)
);
sg.addPreferredGap(RELATED,
GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE);
sg.addGroup(gl.createParallelGroup(GroupLayout.Alignment.CENTER) //de schimbat
.addComponent(lunaL)
.addComponent(lunaArea)
);
sg.addPreferredGap(RELATED,
GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE);
sg.addGroup(gl.createParallelGroup(GroupLayout.Alignment.CENTER) //de schimbat
.addComponent(totalL)
.addComponent(totalArea)
);
sg.addPreferredGap(RELATED,
GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE);
gl.setHorizontalGroup(sg);
GroupLayout.ParallelGroup pg_etichete=gl.createParallelGroup(BASELINE);
GroupLayout.ParallelGroup pg_arii_text=gl.createParallelGroup();
pg_etichete.addComponent(aziL);
pg_etichete.addComponent(saptamanaL);
pg_etichete.addComponent(lunaL);
pg_etichete.addComponent(totalL);
pg_arii_text.addComponent(aziArea);
pg_arii_text.addComponent(saptamanaArea);
pg_arii_text.addComponent(lunaArea);
pg_arii_text.addComponent(totalArea);
GroupLayout.SequentialGroup sgv=gl.createSequentialGroup(); //secvential grup pe verticala
sgv.addPreferredGap(RELATED,
GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE);
sgv.addGroup(pg_etichete);
sgv.addGroup(pg_arii_text);
sgv.addPreferredGap(RELATED,25,25);
gl.setVerticalGroup(sgv);
return gl;
}
}
Ich danke Ihnen im Voraus!
Antworten
panou_rezultate.setLayout(metoda());
panou_rezultate.add(totalScrol); //here is added scroll to panel
Sehen Sie sich den gesamten von Ihrer IDE generierten Code an, wenn Sie a verwenden GroupLayout.
Es gibt alle Arten von komplexem Code, um die von der verwendeten Methode festzulegen, GroupLayoutund dann wird die addComponent(...)Methode verwendet. Aufgrund dieser Komplexität GroupLayoutwird der normalerweise nur von IDE-generiertem Code verwendet.
Sie können nicht einfach die Methode add (...) verwenden, um einem Gruppenlayout Komponenten hinzuzufügen.
Wir empfehlen, die IDE NICHT zum Generieren Ihres Layoutcodes zu verwenden. Dann haben Sie die volle Kontrolle.
Im Swing-Tutorial zu Layout-Managern finden Sie Arbeitsbeispiele für den Einstieg.