我是Java的初学者并试图找出构建JScrollPane的方法。到目前为止,我有以下代码,但它在调用JScrollPane时遇到问题。请帮忙。提前致谢。
public class DemoTest {
public String sTEXT = null;
public JTextArea jTEXTAREA = null;
public JScrollPane jPANE = null;
public JFrame jFRAME = null;
public static void main(String[] args) {
DemoTest demo = new DemoTest();
}
public DemoTest() {
setText();
setPane();
setFrame();
}
public void setFrame() {
JFrame jFRAME = new JFrame("Demo");
jFRAME.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFRAME.setSize(350, 300);
jFRAME.setLocationRelativeTo(null);
jFRAME.setVisible(true);
jFRAME.add(jPANE); // **THIS SEEMS TO BE THE PROBLEM**
}
public void setPane() {
JScrollPane jPANE = new JScrollPane(jTEXTAREA);
}
public void setText() {
JTextArea jTEXTAREA = new JTextArea();
jTEXTAREA.setText("Hello World!");
jTEXTAREA.setEditable(false);
}
}
答案 0 :(得分:0)
当您尝试创建各种Swing对象时,您创建了新的局部变量,而不是分配给成员变量(类级别)。请注意,如果您有一个成员变量和同名的局部变量,您可以使用this.VAR_NAME = ...;
分配给成员变量。为了更好地理解变量范围,请阅读此Scope of Variables in Java帖子,该帖子可以很好地解释基本知识。
public class DemoTest {
public String sTEXT = null;
public JTextArea jTEXTAREA = null;
public JScrollPane jPANE = null;
public JFrame jFRAME = null;
public static void main(String[] args) {
DemoTest demo = new DemoTest();
}
public DemoTest(){
setText();
setPane();
setFrame();
}
public void setFrame(){
jFRAME = new JFrame ("Demo");
jFRAME.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFRAME.setSize(350,300);
jFRAME.setLocationRelativeTo(null);
jFRAME.setVisible(true);
jFRAME.add(jPANE);
}
public void setPane(){
jPANE = new JScrollPane(jTEXTAREA);
}
public void setText(){
jTEXTAREA= new JTextArea();
jTEXTAREA.setText("Hello World!");
jTEXTAREA.setEditable(false);
}
}