JScrollPane 中的 JTextArea 包裹单词但缺少字母

2024-04-19

我想做一个JOptionPane.showOptionDialog和一些JTextArea and JLabel。 问题是对话框太小,我没有找到任何解决方案,所以我决定将我的内容放在JScrollPane.

我看到我必须把我所有的JTextArea and my JLabel in a JPanel因为将它们添加到JScrollPane连续不允许我正确放置视口。

最后一个问题是我的 JTextArea 正确换行了单词,但是当我有 2 或 3 个字母长度的单词时,它们会被滚动条隐藏。

SSCCE :

public class myTest extends JFrame
{
        public static void main(String[] args)
        {
            new myTest();
        }
        public myTest()
        {
            String myLongString="Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?";
            String aLittleString="I am a poor little string which is placed at the bottom of a JOptionPane.";
            String[] options = {"OK","NO"}; 

            JLabel titre1 = new JLabel("Title"); 
            JLabel titre2 = new JLabel("Title 2");

            Map<TextAttribute,Integer> attributs = new HashMap<TextAttribute, Integer>();
            attributs.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON);
            Font police = new Font("Serif", Font.BOLD, 12).deriveFont(attributs); 

            titre1.setFont(police);
            titre2.setFont(police);

            JTextArea text3 = new JTextArea(myLongString,5,75); 
            text3.setLineWrap(true);
            text3.setWrapStyleWord(true);
            text3.setEditable(false);
            Color back = this.getBackground();
            text3.setBackground(back);
            JTextArea text = new JTextArea(myLongString,5,75); 
            text.setLineWrap(true);
            text.setWrapStyleWord(true);
            text.setEditable(false);
            text.setBackground(back);

            JTextArea text2 = new JTextArea(aLittleString,5,75); 
            text2.setLineWrap(true);
            text2.setWrapStyleWord(true);
            text2.setEditable(false);
            text2.setBackground(back);
            JPanel bas = new JPanel(new BorderLayout());
            JPanel basbas = new JPanel(new BorderLayout());

            bas.add(titre1,BorderLayout.NORTH);
            bas.add(text,BorderLayout.CENTER);
            basbas.add(titre2,BorderLayout.NORTH);
            basbas.add(text2,BorderLayout.CENTER);
            basbas.add(text3,BorderLayout.SOUTH);
            bas.add(basbas,BorderLayout.SOUTH);

            JScrollPane js = new JScrollPane(bas);
            js.setBorder(null);
            js.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
            js.setViewportView(bas);
            JLabel lMessage = new JLabel("A message."); 

            Object[] params = {js,lMessage}; 

            int n = JOptionPane.showOptionDialog(new JFrame(),
                    params,
                    "my dialog", 
                    JOptionPane.YES_NO_OPTION,
                    JOptionPane.QUESTION_MESSAGE,
                    null, 
                    options, 
                    options[0]); 

        }
    }

我读了几个主题,但他们总是谈论 setWrapStyleWord。 我禁用水平滚动条,因为我不想要它,事实上我不想要 2 个字母偏离的滚动条。

在我看来,问题是我用一个JPanel但我没有找到其他解决方案。

欢迎对我的帖子或我的英语提出任何反馈。


把我的评论来回答。请尝试提供一个空边框 http://docs.oracle.com/javase/7/docs/api/javax/swing/border/EmptyBorder.html给你的JPanel您要添加的内容JScrollPane,或者您可以将一个 EmptyBorder 添加到您的JTextArea.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JScrollPane 中的 JTextArea 包裹单词但缺少字母 的相关文章

  • 如何为最终用户方便地启动Java GUI程序

    用户想要从以下位置启动 Java GUI 应用程序Windows 以及一些额外的 JVM 参数 例如 javaw Djava util logging config file logging properties jar MyGUI jar
  • 如何默认将 Maven 插件附加到阶段?

    我有一个 Maven 插件应该在编译阶段运行 所以在项目中consumes我的插件 我必须做这样的事情
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • Liferay ClassNotFoundException:DLFileEntryImpl

    在我的 6 1 0 Portal 实例上 带有使用 ServiceBuilder 和 DL Api 的 6 1 0 SDK Portlet 这一行 DynamicQuery query DynamicQueryFactoryUtil for
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • 使用 JMF 创建 RTP 流时出现问题

    我正处于一个项目的早期阶段 需要使用 RTP 广播DataStream创建自MediaLocation 我正在遵循一些示例代码 该代码目前在rptManager initalize localAddress 出现错误 无法打开本地数据端口
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐