java - 无法在java中使文本区域不可编辑

标签 java swing

我对 java 还很陌生,目前正在学习如何制作 GUI。为了测试制作它们,我尝试自己制作一个。为了找到如何让文本框不可编辑,我google了一下,在oracle网站上找到了并尝试了一下。不幸的是,当我尝试执行此操作时,出现错误“ token 上的语法错误,错误的构造”和“ token “假”上的语法错误,删除此 token ”。这是我到目前为止对文本区域的了解:

    JTextArea textArea = new JTextArea("Testing the text", 5, 10);
    JScrollPane scrollPane = new JScrollPane(textArea);
    textArea.setEditable(false);

错误出现在“textArea”和“setEditable”之间以及(当然)“false”之间。当我尝试执行 setText 时,我遇到了同样的错误。

如果有帮助,我导入的是:

    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.JTextArea;
    import javax.swing.JScrollPane;

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

我还扩展了 JFrame 并实现了 ActionListener

如有任何帮助,我们将不胜感激:)

因此,根据要求,我在这里发布了其余的代码。不幸的是,我在这个程序上还没有走得太远,但我会发布到目前为止我所拥有的内容并尝试尽快完成它。

RunTestGui.java 文件:

import javax.swing.JFrame;

public class RunTestGui {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        TestGui gui = new TestGui();
        gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

}

TestGui.java 文件:

/*import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;*/

//import javax.swing.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;

//import java.awt.event.ActionEvent;
//import java.awt.event.ActionListener;

public class TestGui extends JFrame /*implements ActionListener*/ {
//Global components
JTextArea textArea = new JTextArea("Testing the text", 5, 10);
JScrollPane scrollPane = new JScrollPane(textArea);
textArea.setEditable(false);

JTextField textBox;

//constructor
TestGui(String title){

super(title);

this.init();
this.pack();
this.setVisible(true);
}//end constructor

public void init(){

    JLabel ltextBox = new JLabel("TextBox: ");

    textBox = new JTextField(10);

    JPanel leftPanel = new JPanel();
    leftPanel.add(ltextBox);
    leftPanel.add(textBox);

    JPanel rightPanel = new JPanel();
    rightPanel.add(textArea);

}



}

最佳答案

问题是您必须将此行 textArea.setEditable(false); 放在方法主体中,因此您可以放入构造函数或方法:

public void init(){

    JLabel ltextBox = new JLabel("TextBox: ");

    textBox = new JTextField(10);

    JPanel leftPanel = new JPanel();
    leftPanel.add(ltextBox);
    leftPanel.add(textBox);

    JPanel rightPanel = new JPanel();
    rightPanel.add(textArea);

    textArea.setEditable(false); //<-- put it here

}

关于java - 无法在java中使文本区域不可编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25355377/

相关文章:

java - 如何在面板上连续绘制形状?

java - 如何更新 JTable 中 DefaultTableModel 的行?

java - "java.awt.EventQueue.invokeLater"或"new Myframe().setVisible(true) , What'有什么区别?

java - 输入数字 n,然后打印 1 到 n 之间的所有偶数方 block

java - 当前目录 java 中的文件和文件夹数组和有效字符串

java - JDBC mysql meta.getExportedKeys() 返回空结果集

java - 从辅助 mongodb 数据库读取数据

java - 在同一个 JLabel 上绘制多个图形

java - 使用 MigLayout 时, `add` 的第三个 int 参数将如何影响布局?

java - 从网站获取 JSOUP 数据,该数据在页面完全加载后加载值