Jtextarea 如何添加滚动条

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jtextarea 如何添加滚动条相关的知识,希望对你有一定的参考价值。

public class Test extends JFrame
private JTextArea area = new JTextArea();

private Test() this.setLayout(null); area.setSize(420,170); area.setLocation(10,80); area.setMargin(new Insets(10,10,10,10)); Font font = new Font("宋体",0,15); area.setFont(font); this.add(area); this.setSize(465,300); this.setLocation(650,100); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

public static void main(String[] args) new Test().setVisible(true);



运行后如下图:

怎么样添加滚动条

JTextArea添加滚动条代码:

package com.test;

import java.awt.*;
import javax.swing.*;

public class Test extends JFrame

 JMenuBar jb;
 JTextArea ja;
 JScrollPane jsp;

 public void setImage()
  jb = new
JMenuBar();
  this.setJMenuBar(jb);
  ja = new
JTextArea();
  jsp = new JScrollPane(ja);

  this.setSize(600, 400);
  this.setLayout(new
BorderLayout());
  this.add(jsp);
  this.setVisible(true);
 
 public static void main(String[] args)
  Test a =
new
Test();
  a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  a.setImage();

 

运行效果图:

参考技术A JScrollPane JSP=new JScrollPane(JTextArea对象);
JFrame对象.add(JSP);
即可本回答被提问者采纳

自动调整大小和滚动的 Java JTextArea

【中文标题】自动调整大小和滚动的 Java JTextArea【英文标题】:Java JTextArea that auto-resizes and scrolls 【发布时间】:2011-04-20 02:23:42 【问题描述】:

我在 JPanel 中有一个 JTextArea。当 JPanel 调整大小并在输入过多文本时滚动时,如何让 JTextArea 填充整个 JPanel 并调整大小?

【问题讨论】:

【参考方案1】:
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());  //give your JPanel a BorderLayout

JTextArea text = new JTextArea(); 
JScrollPane scroll = new JScrollPane(text); //place the JTextArea in a scroll pane
panel.add(scroll, BorderLayout.CENTER); //add the JScrollPane to the panel
// CENTER will use up all available space

有关 JScrollPane 的更多详细信息,请参阅 http://download.oracle.com/javase/6/docs/api/javax/swing/JScrollPane.html 或 http://download.oracle.com/javase/tutorial/uiswing/components/scrollpane.html

【讨论】:

【参考方案2】:

将 JTextArea 放置在 JScrollPane 中,并将其放置到 JPanel 中,并使用固定大小的布局。例如,带有 GridBagLayout 的示例可能如下所示:

JPanel panel = new JPanel();
panel.setLayout(new GridBagLayout());

JScrollPane scrollpane = new JScrollPane();
GridBagConstraints cons = new GridBagContraints();
cons.weightx = 1.0;
cons.weighty = 1.0;
panel.add(scrollPane, cons);

JTextArea textArea = new JTextArea();
scrollPane.add(textArea);

这只是一个粗略的草图,但它应该说明如何做到这一点。

【讨论】:

几乎没有投票,因为使用 GridBagLayout 来满足如此简单的需求。 永远不要使用 GridBagLayout!从来没有! 在与 Swing 中的所有其他布局管理器长期而彻底的烦恼之后,我现在几乎只使用 GridBagLayout。那是我个人历史的产物,而不是推荐。请务必使用适合您需求的布局管理器。在这种情况下,我认为权重的确切规范明确表明滚动窗格吸收了所有大小的变化。但是,对于简单的布局,实际上使用复杂的布局管理器肯定不值得。 GridBagLayout 没有问题。至少在我的经验中,它灵活且易于使用。如果您在布局组件时遇到性能问题,请务必查看其他布局管理器。

以上是关于Jtextarea 如何添加滚动条的主要内容,如果未能解决你的问题,请参考以下文章

jTextArea如何加滚动条

Jtextarea 如何添加滚动条

带有 JScrollPane 的 JTextArea 不会滚动一次

给JTextArea加滚动条问题

java 怎么在JtextArea里设置滚动条

java-swing 给文本区jtextarea怎么加个滚动条?