Java Getters和Setters在swing ActionListner中不起作用



我正在用Java制作一个代码编辑器,我使用了RSyntaxTextAreajar文件来获得帮助。问题是,应用程序中有一个ComboBox,我们可以使用它切换语言。RSyntaxTextArea中有两种方法:setSyntaxEditingStyle()getSyntaxEditingStyle(),它们在ComboBox动作侦听器中不起作用。请帮帮我,我被卡住了。这是代码。两种方法:

textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA);
and
String a = textArea.getSyntaxEditingStyle();

不在Action Event函数内工作。它们在室外工作非常完美,但在室外无法使用。

public void actionPerformed(ActionEvent e) {

if ( language == "Python") {
try {
textArea.setSyntaxEditingStyle(null);
textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_PYTHON);
textArea.getSyntaxEditingStyle();
String command = "python " + opened_file; 
Runtime.getRuntime().exec("cmd /c start cmd.exe /K " + command);
} catch (IOException e5) {
e5.printStackTrace();
}
}

else if (language == "Java") {
try {
// Look Here
// Look Here
// Look Here
// Look Here
// Look Here
// Look Here
// Look Here
// Look Here
// Look Here {
textArea
.setSyntaxEditingStyle(
SyntaxConstants.SYNTAX_STYLE_JAVA
);
String a = textArea.getSyntaxEditingStyle();
System.out.println(a);

// Look Here }
// Look Here
// Look Here
// Look Here
// Look Here
// Look Here
// Look Here
// Look Here

String classpath = opened_file.replace(".java", "");
String [] last_name_list = opened_file.split("\\");
String lastname = last_name_list[last_name_list.length - 1];
String folderpath = opened_file.replace(lastname, "");
String []classpath_1 = classpath.split("\\");
String class_file = classpath_1[classpath_1.length-1];

Runtime rt = Runtime.getRuntime();
rt.exec("cmd /c start cmd.exe /K "cd " + folderpath + " && javac " + opened_file + " && java " + class_file +""");


}catch (Exception e5) {
e5.printStackTrace();
}
}
我解决了这个问题。有时getter和setter在操作函数中不起作用。。为了解决这个问题,我们可以使用线程。首先将变量声明为volatile。

然后在线程函数中使用if-else,并在中使用getter和setter

最新更新