我对java很陌生,目前正在学习如何制作GUI。为了测试制作它们,我尝试自己制作一个。为了找到如何让文本框不可编辑,我google了一下,在oracle网站上找到了并尝试了一下。不幸的是,当我尝试执行此操作时,出现错误“令牌上的语法错误,错误的构造”和“令牌“假”上的语法错误,删除此令牌”。这是我到目前为止的文本区域:
JTextArea textArea = new JTextArea("Testing the text", 5, 10);
JScrollPane scrollPane = new JScrollPane(textArea);
textArea.setEditable(false);
Run Code Online (Sandbox Code Playgroud)
错误出现在“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;
Run Code Online (Sandbox Code Playgroud)
我还扩展了 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);
}
}
Run Code Online (Sandbox Code Playgroud)
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);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 7
问题是你必须将此行放在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
}
Run Code Online (Sandbox Code Playgroud)