精华内容
下载资源
问答
  • 主要介绍了Java Swing中的文本区(JTextArea)实现换行保存到文件的几个方法,本文给出了4种方法,需要的朋友可以参考下
  • 主要介绍了Java Swing中的文本框(JTextField)与文本区(JTextArea)使用实例,Swing是一个用于开发Java应用程序用户界面的开发工具包,需要的朋友可以参考下
  • Swing JTextArea

    2021-03-17 11:17:41
    JTextArea类是一个显示纯文本的多行区域。类声明以下是javax.swing.JTextArea类的声明 -public class JTextAreaextends JTextComponent类构造函数编号构造函数描述1JTextArea()构造一个新的TextArea。2JTextArea...

    JTextArea类是一个显示纯文本的多行区域。

    类声明

    以下是javax.swing.JTextArea类的声明 -

    public class JTextArea

    extends JTextComponent

    类构造函数编号

    构造函数

    描述

    1

    JTextArea()

    构造一个新的TextArea。

    2

    JTextArea(Document doc)

    使用给定的文档模型构造一个新的JTextArea,并为所有其他参数(null,0,0)默认设置。

    3

    JTextArea(Document doc, String text, int rows, int columns)

    构造具有指定行数和列数以及给定模型的新JTextArea。

    4

    JTextArea(int rows, int columns)

    构造具有指定行数和列数的新空TextArea。

    5

    JTextArea(String text)

    构造一个显示指定文本的新TextArea。

    6

    JTextArea(String text, int rows, int columns)

    构造一个具有指定文本和行数和列数的新TextArea。

    类方法编号

    类方法

    描述

    1

    void append(String str)

    2

    protected Document createDefaultModel()

    如果没有明确给出,则创建要在构造中使用的模型的默认实现。

    3

    AccessibleContext getAccessibleContext()

    获取与此JTextArea关联的AccessibleContext。

    4

    int getColumns()

    返回TextArea中的列数。

    5

    protected int getColumnWidth()

    获取列宽。

    6

    int getLineCount()

    获取列宽。

    7

    int getLineEndOffset(int line)

    确定区域中包含的行数。

    8

    int getLineOfOffset(int offset)

    将偏移量转换为组件文本到行号。

    9

    int getLineStartOffset(int line)

    确定给定行开头的偏移量。

    10

    boolean getLineWrap()

    获取文本区域的换行策略。

    11

    Dimension getPreferredScrollableViewportSize()

    如果此组件嵌入在JScrollPane中,则返回视口的首选大小。

    12

    Dimension getPreferredSize()

    返回TextArea的首选大小。

    13

    protected int getRowHeight()

    定义行高的含义。

    14

    int getRows()

    返回TextArea中的行数。

    15

    boolean getScrollableTracksViewportWidth()

    如果视口应始终强制此Scrollable的宽度与视口的宽度匹配,则返回true。

    16

    int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)

    显示逻辑行或列的组件应计算滚动增量,该增量将完全显示一个新行或列,具体取决于方向的值。

    17

    int getTabSize()

    获取用于展开选项卡的字符数。

    18

    String getUIClassID()

    返回UI的类ID。

    19

    boolean getWrapStyleWord()

    获取文本区域换行时使用的换行样式。

    20

    void insert(String str, int pos)

    在指定位置插入指定的文本。

    21

    protected String paramString()

    返回此JTextArea的字符串表示形式。

    22

    void replaceRange(String str, int start, int end)

    使用指定的新文本替换指示的开始位置到结束位置的文本。

    23

    void setColumns(int columns)

    设置此TextArea的列数。

    24

    void setFont(Font f)

    设置当前字体。

    25

    void setLineWrap(boolean wrap)

    设置文本区域的换行策略。

    26

    void setRows(int rows)

    设置此TextArea的行数。

    27

    void setTabSize(int size)

    设置展开选项卡的字符数。

    28

    void setWrapStyleWord(boolean word)

    如果文本区域是换行,则设置使用的换行样式。

    方法继承

    该类继承以下类中的方法 -

    javax.swing.text.JTextComponent

    javax.swing.JComponent

    java.awt.Container

    java.awt.Component

    java.lang.Object

    JTextArea示例

    使用编辑器创建以下Java程序 -

    import java.awt.*;

    import java.awt.event.*;

    import javax.swing.*;

    public class JTextAreaExample {

    private JFrame mainFrame;

    private JLabel headerLabel;

    private JLabel statusLabel;

    private JPanel controlPanel;

    public JTextAreaExample(){

    prepareGUI();

    }

    public static void main(String[] args){

    JTextAreaExample swingControlDemo = new JTextAreaExample();

    swingControlDemo.showTextAreaDemo();

    }

    private void prepareGUI(){

    mainFrame = new JFrame("Java Swing JTextArea示例");

    mainFrame.setSize(400,400);

    mainFrame.setLayout(new GridLayout(3, 1));

    mainFrame.addWindowListener(new WindowAdapter() {

    public void windowClosing(WindowEvent windowEvent){

    System.exit(0);

    }

    });

    headerLabel = new JLabel("", JLabel.CENTER);

    statusLabel = new JLabel("",JLabel.CENTER);

    statusLabel.setSize(350,100);

    controlPanel = new JPanel();

    controlPanel.setLayout(new FlowLayout());

    mainFrame.add(headerLabel);

    mainFrame.add(controlPanel);

    mainFrame.add(statusLabel);

    mainFrame.setVisible(true);

    }

    private void showTextAreaDemo(){

    headerLabel.setText("Control in action: JTextArea");

    JLabel commentlabel= new JLabel("评论内容: ", JLabel.RIGHT);

    final JTextArea commentTextArea =

    new JTextArea("这个是一个简单的Swing JTextArea \n"

    +" 用于制作用户图形界面。",5,20);

    JScrollPane scrollPane = new JScrollPane(commentTextArea);

    JButton showButton = new JButton("显示评论");

    showButton.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

    statusLabel.setText( commentTextArea.getText());

    }

    });

    controlPanel.add(commentlabel);

    controlPanel.add(scrollPane);

    controlPanel.add(showButton);

    mainFrame.setVisible(true);

    }

    }

    执行上面示例代码,得到以下结果 -

    f0ebb2dec028e09940e40b7e7c70ac4a.png

    ¥ 我要打赏

    纠错/补充

    收藏

    加QQ群啦,易百教程官方技术学习群

    注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

    展开全文
  • JTextArea事件处理

    2021-03-03 11:58:54
    public JTextArea4(){ super("JTextArea4"); jta = new JTextArea(); jta.getDocument().addUndoableEditListener(this);//将JTextArea加入UndoableEditListener. message = new JTextArea(); message.setEditable...

    [java]代码库import java.awt.*;

    import java.awt.event.*;

    import javax.swing.*;

    /*由于会使用到复原和事件驱动功能,因此需要将javax.swing.undo和javax.swing.event两个package包含进来

    */

    import javax.swing.undo.*;

    import javax.swing.event.*;

    /*JTextArea4类继承JFrame类并实作UndoableEditListener interface.实作UndoableEditListener interface就必须要编写其中的

    *undoableEditHappened().

    */

    public class JTextArea4 extends JFrame implements UndoableEditListener{

    private UndoableEdit edit;

    private JTextArea jta;

    private JTextArea message;

    private JMenuItem undoitem;

    private JMenuItem redoitem;

    public JTextArea4(){

    super("JTextArea4");

    jta = new JTextArea();

    jta.getDocument().addUndoableEditListener(this);//将JTextArea加入UndoableEditListener.

    message = new JTextArea();

    message.setEditable(false);//利用setEditable()方法将另一个JTextArea设置为不可编辑.

    JPanel p1 = new JPanel();

    p1.setLayout(new GridLayout(1,1));

    p1.setBorder(BorderFactory.createTitledBorder("Edit Area"));

    p1.add(new JScrollPane(jta));

    //--begin:分别将两个JTextArea通过JPanel放到JFrame中。

    JPanel p2 = new JPanel();

    p2.setLayout(new GridLayout(1,1));

    p2.setBorder(BorderFactory.createTitledBorder("Message"));

    p2.add(new JScrollPane(message));

    getContentPane().setLayout(new GridLayout(2,1));

    getContentPane().add(p1);

    getContentPane().add(p2);

    //--end

    //建立目录菜单并放置到JFrame中.

    JMenuBar bar = new JMenuBar();

    JMenu theMenu = new JMenu("Edit");

    undoitem = new JMenuItem("Undo");

    redoitem = new JMenuItem("Redo");

    theMenu.add(undoitem);

    theMenu.add(redoitem);

    bar.add(theMenu);

    updateMenuItem();//构造目录菜单

    setJMenuBar(bar);

    setSize(300,300);

    //采用inner class方式,分别构造菜单选项被点选后的运行操作。分别调用undo(),redo()方法来完成.

    undoitem.addActionListener(new ActionListener(){

    public void actionPerformed(ActionEvent ev){

    edit.undo();

    updateMenuItem();//运行undo功能

    message.append("- Undo -\n");

    }

    });

    redoitem.addActionListener(new ActionListener(){

    public void actionPerformed(ActionEvent ev){

    edit.redo();

    updateMenuItem();//运行redo功能

    message.append("- Redo -\n");

    }

    });

    }//end of JTextArea4()

    public void undoableEditHappened(UndoableEditEvent ev){

    StringBuffer buf = new StringBuffer(200);

    /*当用户在Text Area中有所操作时,就可以用getEdit()方法取得UndoableEdit对象,此对象纪录着刚刚用户的操作,因

    *此可由些对象的undo()或redo()达到取消或复原的功能.

    */

    edit = ev.getEdit();

    buf.append("undoableEdit:");

    buf.append(edit.getPresentationName());

    buf.append("\n");

    message.append(buf.toString());

    updateMenuItem();

    }//end of undoableEditHappened()

    //判断是否此时是否可以运行undo或redo的功能,并且改变目录菜单的状态值.

    public void updateMenuItem(){

    if (edit != null){

    undoitem.setEnabled(edit.canUndo());

    redoitem.setEnabled(edit.canRedo());

    undoitem.setText(edit.getUndoPresentationName());

    redoitem.setText(edit.getRedoPresentationName());

    }else{

    undoitem.setEnabled(false);

    redoitem.setEnabled(false);

    undoitem.setText("Undo");

    redoitem.setText("Redo");

    }

    }//end of updateMenu()

    public static void main(String args[]) {

    JFrame f = new JTextArea4();

    f.addWindowListener(new WindowAdapter() {

    public void windowClosing(WindowEvent e) {

    System.exit(0);

    }

    });

    f.show();

    }//end of main()

    }//end of class JTextArea4

    694748ed64b9390909c0d88230893790.png

    展开全文
  • Java JTextArea字体

    2021-07-16 23:05:20
    I have a custom font installed on my PC called "BMW... I'm trying to loop through all entries in this font and display them in a JTextArea.I have the following code:JTextArea displayArea = new JTextAr...

    I have a custom font installed on my PC called "BMW1". I'm trying to loop through all entries in this font and display them in a JTextArea.

    I have the following code:

    JTextArea displayArea = new JTextArea();

    Font font = new Font("BMW1", Font.PLAIN, 72);

    displayArea.setFont(font);

    String sample = "";

    for (int current = 0; current < 300; current++)

    sample += new Character((char)current).toString() + "\n";

    displayArea.setText(sample);

    When I run my program, it just prints out those little boxes (which I assume means it couldn't find a font entry for that iteration).

    Am I doing something wrong here? Is JTextArea the best option for this sort of thing? Any suggestions on how to do this?

    解决方案

    Used Font canDisplay() methods to determine that Java can't display this font.

    I ended up switching to C# which has better support for custom fonts (at least in this particular case).

    展开全文
  • Java:JTextArea

    2021-02-25 20:09:12
    JTextArea文本域组件,其实跟JTextField文本框组件的使用非常相似,只不过文本框是一行,但文本域可以是多行。JTextArea类所在包JPasswordField类的所在包不用说大家都知道是javax.swing包了,所以开头导入。import ...

    JTextArea文本域组件,其实跟JTextField文本框组件的使用非常相似,只不过文本框是一行,但文本域可以是多行。

    JTextArea类所在包

    JPasswordField类的所在包不用说大家都知道是javax.swing包了,所以开头导入。

    import javax.swing.*;

    JTextArea类构造方法

    public JTextArea();

    public JTextArea(String text);

    public JTextArea(int rows, int columns);

    public JTextArea(String text, int rows, int columns);

    主要的构造方法就这些,这里简单说一下text就是文本域中的初始内容,rows和columns分别代表文本域的行数和列数。

    JTextArea类使用方法

    JTextArea的使用真的可以说跟JTextField极为相似,先是设置文本,下面的代码就是将文本域的内容设置为字符串text。如果你想清空所有文本,其实就是将文本设置为一个空串,即让text = ""。

    text_area.setText(text);

    接下来是追加文本的方法,就是在当前文本的后面追加一个字符串text,实现起来很简单。

    text_area.append(text)

    之后是将焦点重新转移到文本域,因为当你点完按钮后,焦点就到了按钮,如果要继续在文本域内输入需要点一下文本域才能继续编辑,所以JTextArea类又提供了一个方法来帮助你将焦点重新回到文本域。

    text_area.requestFocus();

    下一个方法是用来获取当前文本域内的文本的,返回的是一个字符串。

    String str = text_area.getText();

    最后一个方法是来设置自动换行的,默认情况下我们会发现如果我们输入到头了,文本域不会自动为你换行,所以为了让文本域在一行到头时自动换行,JTextArea类又提供了一个方法来解决这个问题。这里的flag为一个boolean类型的值,如果为true则设置自动换行,否则是取消自动换行。

    text_area.setLineWrap(flag);

    代码

    package technology;

    import java.awt.*;

    import java.awt.event.*;

    import javax.swing.*;

    public class MyFirstTextArea extends JFrame {

    final static long serialVersionUID = 1L;

    JPanel panel_center = new JPanel(), panel_south = new JPanel();

    Container container = getContentPane();

    JTextArea text_area = new JTextArea("文本域", 10, 20);

    JButton clear_button = new JButton("清空"), laugh_button = new JButton("哈哈"), system_button = new JButton("记录");

    public MyFirstTextArea()

    {

    super("JFrame窗体");

    this.setBounds(200, 100, 400, 300);

    text_area.setLineWrap(true);

    clear_button.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent arg0) {

    text_area.setText("");

    text_area.requestFocus();

    }

    });

    laugh_button.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent arg0) {

    text_area.append("233");

    text_area.requestFocus();

    }

    });

    system_button.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent arg0) {

    System.out.println(text_area.getText());

    System.out.println("====================================");

    text_area.requestFocus();

    }

    });

    panel_center.add(text_area);

    panel_south.setLayout(new FlowLayout(FlowLayout.CENTER, 25, 20));

    panel_south.add(clear_button);

    panel_south.add(laugh_button);

    panel_south.add(system_button);

    container.setLayout(new BorderLayout());

    container.add(panel_center, BorderLayout.CENTER);

    container.add(panel_south, BorderLayout.SOUTH);

    this.setVisible(true);

    }

    public static void main(String[] args) {

    new MyFirstTextArea();

    }

    }

    效果图如下:

    d6f76a5c2efab7f084a9b7567c090b56.png

    展开全文
  • 问题Right I already worked out that JTextArea or JTextField don't support HTML.I want to add text to a "screen" like a JTextArea and later keep appending text to it.I tried with JTextArea which worked...
  • } } } } private class ReadWorker extends SwingWorker{ private JTextArea textArea; private File file; private ReadWorker(JTextArea textArea,File file) { this.textArea=textArea; this.file=...
  • 有一对夫妇的方式,你可能能够做到这一点,你可以只需将边界后的边界应用于框架或JTextArea或者您可以支持根据您的需求根据您的需要将Border的值转换为任意方法我的选择是考虑使用构建器模式,这将允许您提供您感...
  • 既然是可能的用途Highlighter(或HTML)用于JTextArea,此api实现了样式文本的简化选项。importjava.awt.*;importjavax.swing.*;importjavax.swing.text.*;publicclassTextPaneHighlighting{...
  • JTextArea txtArea;// 文字显示区; JPanel fontPanel;// 字体设置; JPanel showPanel;// 显示效果区 Font font; int boldStyle, italicStyle, underlineStyle; int fontSizeStyle; String fontNameStyle; Color ...
  • JTextArea怎样设置编码

    2021-03-08 16:07:24
    importjava.io.ByteArrayOutputStream;importjava.io.OutputStreamWriter;importjava.nio.charset.Charset;classTest{publicstaticvoidmain(String[]args){System.out.println("DefaultCharset="+Chars...
  • 小编典典您不需要创建自己的组件。这可以使用自定义DocumentFilter来完成(就像我已经完成的那样)。您可以从获取文档textPane.getDocument()并通过对其设置过滤器document.setFilter()。在过滤器中,您可以检查提示...
  • 工数经会公,近做后一常进司还近做后一常xtArea插入最后一条消息之后,添加(JTextArea)recvArea.setCaretPosition(recvArea.getText().length()),将光标移到最后,实现滚动条览需下有都视事房站有行移域图于带近器求...
  • 我有一个在特定设置下不可编辑的JTextArea.但是,在此设置下,用户仍然可以使用空格键和退格键.为了容纳空间,我有以下代码,if (e.getKeyChar() == KeyEvent.VK_SPACE) {editor.insert(" ", editor.getCaretPosition())...
  • 文本区JTextArea是对多行文本进行编辑的组件,用空字符来控制文本的格式。eg:"\n"为换行,"\t"为插入一个Tab字符。文本去JTextArea的常用方法:append(String str);///方法,向文本区追加文本内容insert(String str...
  • 我是java新手并使用java创建UI小部件并为此创建了...但是因为我有JFrame和JTextArea的单独类,所以我无法做到.有帮助吗?类import javax.swing.*;import java.awt.*;import javax.swing.BorderFactory;public class U...
  • 我正在编写的应用程序包括JButton和JTextArea.单击该按钮会导致计算时间过长,从而导致JTextArea中显示文本.即使计算时间很长,我也可以随时随地获得中间结果(例如,想想一个近似于100位数的pi的应用程序 – 每隔几秒我...
  • JTextArea 用来编辑多行的文本。JTextArea 除了允许多行编辑外,其他基本用法和 JTextField 基本一致。JTextArea 常用构造方法:/*** 参数说明:* text: 默认显示的文本* rows: 默认可见的行数* columns: 默认可见的列...
  • I'm trying to write a method that changes a text size inside of the JtextArea.JTextArea editorPanel;Font editorFont;public void setSize( int size ) {editorPanel.setFont( new Font( editorFont.getName()...
  • 有几种方法可以实现这一点,你可以将事后的边框应用到框架或JTextArea或者你可以根据你的需要为这两种方法提供Border值我倾向于考虑使用构建器模式,这将允许您提供您感兴趣的属性并生成最终结果。因为许多属性是在...
  • 您无需创建自己的组件.这可以使用自定义DocumentFilter完成(就像我已经完成的那样).您可以从textPane.getDocument()获取文档,并通过document.setFilter()在其上设置过滤器.在过滤器中,您可以检查提示位置,并且只有在...
  • java中JTextArea类的属性和方法(2012-12-11 13:48:13)标签:字体属性方法指示组件JTextArea:void append(String str)将给定文本追加到文档结尾。protected Document createDefaultModel()如果没有显式给出构造时要...
  • import javax.swing.JTextArea; import javax.swing.SwingWorker; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; public class TestTextArea03 { public static void main...
  • 没有区别。它们都具有删除旧文本的效果。从javaTextComponent页面:的setTextpublic void setText(String t)Sets the text of this TextComponent to the specified text. If the text is nullor empty, has the ...
  • 一个改变JTextArea指定位置文本的背景色的例子
  • 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 ...
  • I have used this answer to get the functionality of Autoscrolling on a JTextArea. But it seems that it works only when the setEditable property of the same JTextArea is set to TRUE. Of course, i use a...
  • java 使用JTextArea组件

    2010-06-21 17:03:04
    java 使用JTextArea组件 java 使用JTextArea组件 java 使用JTextArea组件

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,982
精华内容 7,192
关键字:

jtextarea

友情链接: iDmiEdit.zip