Comment pouvons-nous ajouter JScrollPane sur JTextArea en java?
Quelqu'un peut-il me dire quel est le problème dans le programme suivant? Je souhaite équiper JScrollPane
sur JtextArea
mais quand je l'ajoute ensuite JTextArea
n'est pas visible.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Area extends JFrame
{
private JTextArea ta;
private JTextField tf;
JScrollPane jp;
public Area()
{
super("Text Area");
tf=new JTextField();
tf.setBounds(100,350,300,30);
add(tf);
ta=new JTextArea();
ta.setBounds(100,100,300,200);
jp= new JScrollPane(ta);
add(jp);
setLayout(null);
setSize(500,500);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String...s)
{
new Area();
}
}
Don't use a null layout!
- Swing a été conçu pour être utilisé avec les gestionnaires de disposition pour des raisons trop nombreuses pour les énumérer ici.OriginalL'auteur AR7 | 2013-10-06
Vous devez vous connecter pour publier un commentaire.
Je vois plusieurs problèmes:
N'utilisez pas de
null
mise en page; faire une vraie mise en page.La disposition par défaut de
JFrame
estBorderLayout
; la position par défaut estCENTER
; un seul composant peut occuper un poste à la fois; l'exemple ci-dessous utiliseNORTH
&CENTER
.Utiliser le constructeur approprié des paramètres de la taille des composantes d'un texte initialement.
La barre de défilement s'affiche automatiquement chaque fois que le composant scrollpane est plus petit que le joint de la composante; redimensionner l'image pour voir l'effet.
Comme le montre ici, la taille du bloc est de plus en plus petits pour faire de l'effet.
Voir aussi Initial Threads.
OriginalL'auteur trashgod
Essayez ceci:
Vous devez utiliser
setBounds
sur JScrollPane, pas sur JTextAreaOriginalL'auteur Sylwek
sons comme sa plus-mais ce n'est pas indiqué en raison de la politique essayez ceci:
setBounds
méthode surjp
, pas surJTextArea
, parce que quand il ajoutetextArea
àscrollPane
,scrollPane
est parentactuellement je exécuter son code et il n'y a pas de zone de texte là. en raison de setLayoutO(null), pour être honnête, je n'ai jamais utilisé setBounds parce que je suis en désaccord avec setBounds de toute façon.
OriginalL'auteur Foo Bar User