Barre de défilement dans le JTextArea
Je veux créer une barre de défilement dans la zone de texte, mais Si je mets le Composite Mise à null, la barre de défilement de ne pas s'afficher!
J'ai essayé
JScrollPane scrollbar1 =
new JScrollPane(
ta1,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
Mais ne fonctionne pas en raison de la valeur null est à disposition.
Voici mon code actuel:
import javax.swing.*;
import java.awt.*;
public class app extends JFrame {
public static void main(String[] args)
{
new app();
}
public app()
{
this.setSize(400,400);
this.setLocation(0,0);
this.setResizable(false);
this.setTitle("Application");
JPanel painel = new JPanel(null);
//Creating the Input
JTextField tf1 = new JTextField("Some random text", 15);
tf1.setBounds(5,5,this.getWidth()-120,20);
tf1.setColumns(10);
tf1.setText("Omg");
painel.add(tf1);
//Creating the button
JButton button1 = new JButton("Send");
button1.setBounds(290, 5, 100, 19);
painel.add(button1);
//Creating the TextArea
JTextArea ta1 = new JTextArea(15, 20);
JScrollPane scr = new JScrollPane();
ta1.setBounds(5, 35, 385, 330);
ta1.setLineWrap(true);
ta1.setWrapStyleWord(true);
painel.add(ta1);
this.add(painel);
this.setVisible(true);
}
}
Je veux le faire fonctionner correctement. Si quelqu'un peut m'aider, laissez un commentaire ci-dessous s'il vous plaît!
La bonne façon serait de ne pas utiliser
Je l'ai dit, j'ai essayé de le faire mais ça ne fonctionne pas.
Il fonctionne, mais vous devez définir les limites de l'enroulement du volet correctement puisque vous essayez de créer la mise en page manuellement (oui, je l'ai essayé).
Vous ne devriez PAS être la délimitation de défilement de la fenêtre. Vous ne devez PAS utiliser une valeur null mise en page. Null mises en cause de problèmes de ce type. Vous DEVRIEZ être en utilisant les gestionnaires de disposition. Swing a été conçu pour être utilisé avec les gestionnaires de disposition. Lire le JTextArea API et suivez le lien vers le Swing tutoriel pour le travail des exemples qui montrent comment utiliser Swing correctement.
double possible de JTextArea pas de barre de défilement
null
mise en page. De toute façon, vous avez besoin de mettre la TextArea
dans le panneau défilant, et le défilement volet où vous voulez la combinaison d'apparaître.Je l'ai dit, j'ai essayé de le faire mais ça ne fonctionne pas.
Il fonctionne, mais vous devez définir les limites de l'enroulement du volet correctement puisque vous essayez de créer la mise en page manuellement (oui, je l'ai essayé).
Vous ne devriez PAS être la délimitation de défilement de la fenêtre. Vous ne devez PAS utiliser une valeur null mise en page. Null mises en cause de problèmes de ce type. Vous DEVRIEZ être en utilisant les gestionnaires de disposition. Swing a été conçu pour être utilisé avec les gestionnaires de disposition. Lire le JTextArea API et suivez le lien vers le Swing tutoriel pour le travail des exemples qui montrent comment utiliser Swing correctement.
double possible de JTextArea pas de barre de défilement
OriginalL'auteur John Black | 2013-08-17
Vous devez vous connecter pour publier un commentaire.
J'ai corrigé tous les problèmes qui suit est le code de travail. Merci de lire les commentaires pour les modifications.
MODIFIER. Veuillez lire le tutoriel à partir d'oracle sur Java. Et commencer à utiliser appropriées layout manager...
Espérons que cela aide
null
mise en page de mauvais conseils; voir aussi Initial Threads.Merci, c'est ce que je cherchais.
OriginalL'auteur Jabir
If someone can help me, leave a comment below please!
pourquoi vous s'il vous plaît allez-vous écraser avec votre tête de mur,
JScrollPane
est désigné pour Dynamique, RedimensionnableLayoutManager
,AbsoluteLayout
pouvez cassé ce ses propriétés de baseà partir de haut
public class app extends JFrame {
public class App {
---> Conventions de Nommage JavaJFrame
comme variable localenew app();
---> se Oracle tutoriel Thread Initialcréer un autre
JPanel
, y mettreJTextField
etJButton
avez-vous quelque chose de superposition
tf1.setBounds(5,5,this.getWidth()-120,20);
NullLayout
ne fonctionne pas correctement sans l'aide deInsets
changement intégré
FlowLayout
pourJPanel painel = new JPanel(null);
àBorderLayout
, y mettreJScrollPane
avecJTextArea
àCENTER area
vous pouvez mettre
JScrollPane
avecJTextArea
àJFrames CENTER area
directement et une autreJPanel
avecJTextField
etJButton
àSOUTH
ouNORTH
,JFrame
aBorderLayout
mise en œuvre de l'API deJScrollPane
montrantJScrollbars
uniquement dans le cas où sonDimension
est plus petit queJComponent
placé làutilisation
JFrame.pack()
au lieu desetSize
, cette ligne devrait être avantsetVisible
OriginalL'auteur mKorbel
Voici un exemple de base de beaucoup de @mKorbels points. Notez comment la mise en page par défaut de
JPanel()
,FlowLayout()
, utilise la taille préférée de ses composants. L'appel àf.setSize()
est en option pour forcer la barre de défilement apparaît.OriginalL'auteur trashgod
Vous avez à passer dans votre
JTextArea
à votreJScrollPane
constructeur, puis ajouter votreJScrollPane
objet de votreContainer
plutôt que de simplement leJTextArea
. Donc, il devrait ressembler à quelque chose comme ceci:C'était juste une observation fondée sur le code présenté.
+1 ........... reste est question de la Fpo
+1, @JohnBlack, Le code que vous avez posté est complètement faux. Vous ne devriez PAS être null à l'aide de mises en page et setBounds(). Le gestionnaire de présentation permettra de déterminer la taille et à l'emplacement du composant. Vous êtes l'ajout de la zone de texte pour un groupe plutôt que de l'ajouter à la fenêtre d'affichage du composant scrollpane. Le code qui vous est donné par Josh est correct. Le seul autre changement est que vous ne devriez pas être la création du groupe avec une valeur null mise en page. Je n'ai aucune idée de l'endroit où vous avez copié le code, mais vous devez ignorer que les sites web des exemples. Lire la Balançoire tutoriel à la place.
OriginalL'auteur Josh M