当前位置: 首页 > 面试题库 >

Java Swing JTextArea左右写

景岳
2023-03-14
问题内容

我正在用Java开发一个简单的消息传递应用程序。我想在我的textArea的左侧和右侧显示消息,如所有whatsapp,messenger等。更改方向会更改所有文本的方向,因此它没有用。

非常感谢


问题答案:

您不能使用JTextArea。

一种解决方案是使用a JTextPane并为插入的每一行文本设置属性:

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

public class TextPaneChat
{
    private static void createAndShowGUI()
    {
        JTextPane textPane = new JTextPane();

        StyledDocument doc = textPane.getStyledDocument();

        SimpleAttributeSet left = new SimpleAttributeSet();
        StyleConstants.setAlignment(left, StyleConstants.ALIGN_LEFT);
        StyleConstants.setForeground(left, Color.RED);

        SimpleAttributeSet right = new SimpleAttributeSet();
        StyleConstants.setAlignment(right, StyleConstants.ALIGN_RIGHT);
        StyleConstants.setForeground(right, Color.BLUE);

        try
        {
            doc.insertString(doc.getLength(), "Are you busy tonight?", left );
            doc.setParagraphAttributes(doc.getLength(), 1, left, false);
            doc.insertString(doc.getLength(), "\nNo", right );
            doc.setParagraphAttributes(doc.getLength(), 1, right, false);
            doc.insertString(doc.getLength(), "\nFeel like going to a movie?", left );
            doc.setParagraphAttributes(doc.getLength(), 1, left, false);
            doc.insertString(doc.getLength(), "\nSure", right );
            doc.setParagraphAttributes(doc.getLength(), 1, right, false);
        }
        catch(Exception e) { System.out.println(e); }

        JFrame frame = new JFrame("Text Pane Chat");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add( new JScrollPane( textPane ) );
        frame.setLocationByPlatform( true );
        frame.setSize(200, 200);
        frame.setVisible( true );
    }

    public static void main(String[] args)
    {
        EventQueue.invokeLater( () -> createAndShowGUI() );
/*
        EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                createAndShowGUI();
            }
        });
*/
    }
}


 类似资料:
  • css flex 布局,页面分为上下两部分,下面通过 flex: 1; 撑开,并且 overflow-y: auto;下面又分为左右布局,左右高度不一定,想要设置一个边框分割左右,但是边框始终到最底部; 下半部分左右边框高度能够到自动撑开的高度 https://codesandbox.io/p/devbox/flexbu-ju-zi-dong-cheng-gao-8...

  • 左右菜单例子,类似于Facebook的ViewControllerContainer,在一个UIViewController上面加载另外一个UIViewController。点击主视图的导航条左右两边按钮,就会从左右两边分别滑动出子视图。 [Code4App.com]

  • 如您所见,GravityCompat不允许我放右而不是结束或开始,如果我把它放入XML中,它就会崩溃。 出现下一个错误:

  • 我使用函数从文本转换图像。现在,我正试图将转换后的图像文本对齐到中心、左侧和右侧,但我找不到任何方法进行排序。如果有人知道如何做到这一点,请告诉我。下面是我用来在php中转换文本图像的代码。 演示链接:-点击这里

  • 实现气球左右阻尼摇摆动画效果,也就是摇动从激烈到完全静止。可以摇晃设备或者点击按钮让气球开始摇动。 [Code4App.com]

  • 问题内容: 是否有更改此文本的CSS代码 到这个 问题答案: 尝试这个 编辑:将此类应用于段落标记,您应该得到想要的结果。