当我将变量设置为JTextArea时,它没有值

时间:2014-05-24 17:54:12

标签: java swing jtextarea

我不明白为什么变量在代码的一部分工作但在其他部分没有。是同一个变量,用相同的值表示。这是我的代码

// Variables
String patologicos="";
String ginecologicos="";
String valuePanel="";

JTextArea ja;

这里构建了构造函数

public BaseHistorialPanelNoEditable(int typePanel){

        // constructor
    ja = new JTextArea();
    ja.setPreferredSize(new Dimension(900, 280));
    setBackground(Layout.pac_background);
    ja.setEditable(false);
    this.add(ja);
    showInformation(typePanel);

}

显示某些信息的方法

public void showInformation(int value){
                        // getting data from  DB
                getPatientData();

                switch (value) {

                case 1:
                    valuePanel = patologicos;
                    break;

                case 2:
                    valuePanel = ginecologicos;
                    break;

                default:
                    break;
                }

                        // show message  
                Main.buildDialog(value + " " +valuePanel,  "Mensaje informativo", JOptionPane.INFORMATION_MESSAGE);

                        // set a value to text area
                ja.setText(valuePanel);


        }

从数据库获取信息的方法

public void getPatientData(){

                    Main.readdb.select(
                            "select * from clinic where no_paciente=" +
                            Paciente.getPac_no());

                     if (Main.readdb.getNext()) {

                            patologicos = Main.readdb.getString("historia_clinic");
                            ginecologicos = Main.readdb.getString("gineco");

    }

这段代码显示了一条消息

Main.buildDialog(value + " " +valuePanel,  "Mensaje informativo",    JOptionPane.INFORMATION_MESSAGE);

使用相同的变量。

varible working http://i61.tinypic.com/eamogz.jpg

为什么当我在一行之后使用相同的变量时,它没有任何值?

ja.setText(valuePanel);

感谢您的时间。

1 个答案:

答案 0 :(得分:-1)

不确定但只是一个想法..

当你使用setEditable(false)时..它可能是内部实现,它不允许设置值..

试试这个:

ja.setEditable(true);
ja.setText(valuePanel);
ja.setEditable(false);

希望这有意义..