gpt4 book ai didi

java - 扩展 JScrollPane 以在其中包含文本区域

转载 作者:行者123 更新时间:2023-12-02 06:02:23 25 4
gpt4 key购买 nike

我正在尝试将 JTextArea 插入到 JScrollPanel 中,我希望它的行为就像在 Microsoft Word 中一样,其中有两个空边,中间有当您插入更多文本时,滚动面板下面的代码中的文本区域似乎不会增长,两个空白边不存在。我做错了什么?

import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.*;
import java.awt.Dimension;

public class WorkArea extends JScrollPane{
public WorkArea(){
/* Scroll Panel settings*/
setBackground(new Color(60,60,60));
setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
getViewport().setOpaque(false);
setBorder(null);

/* Text Area */
JTextArea textArea = new JTextArea("Hello World!");
textArea.setLineWrap(true);
textArea.setPreferredSize(new Dimension(400, 400));

/* Adding the textarea to the scrollPanel */
setViewportView(textArea);
}
}

最佳答案

类似这样的吗?

enter image description here

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

class TextAreaInScrollPane {

JPanel gui = new JPanel(new BorderLayout());

TextAreaInScrollPane() {
// adjust columns/rows for different size
JTextArea ta = new JTextArea(10,20);
ta.setLineWrap(true);
ta.setWrapStyleWord(true); // nicer
JScrollPane jsp = new JScrollPane(
ta,
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
gui.add(jsp);

// this is purely to show the bounds of the gui panel
gui.setBackground(Color.RED);
// adjust to need
gui.setBorder(new EmptyBorder(5, 15, 15, 5));
}

public JComponent getGUI() {
return gui;
}

public static void main(String[] args) {
Runnable r = new Runnable() {

@Override
public void run() {
TextAreaInScrollPane taisp = new TextAreaInScrollPane();

JOptionPane.showMessageDialog(null, taisp.getGUI());
}
};
// Swing GUIs should be created and updated on the EDT
// http://docs.oracle.com/javase/tutorial/uiswing/concurrency
SwingUtilities.invokeLater(r);
}
}

提示

  1. 没有真正的理由在此处扩展 JScrollPane。只需使用一个实例即可。
  2. 参见Should I avoid the use of set(Preferred|Maximum|Minimum)Size methods in Java Swing? (是的。)
  3. 为了更快地获得更好的帮助,请发布 MCTaRE (最小的完整测试和可读示例)。以上是 MCTaRE 的示例。它可以复制/粘贴到 IDE 或编辑器中,按原样编译和运行。
  4. ScrollPaneConstants.HORIZONTAL_SCROLLBAR_​​NEVER 更好,因为我们将 JTextArea 设置为换行。
  5. 另请参阅 MCTaRE 中的评论以获取更多提示。

关于java - 扩展 JScrollPane 以在其中包含文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22569995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com