覆盖TextArea

时间:2016-06-01 18:21:26

标签: java textarea text-files java.util.scanner

我想覆盖TextArea中的String,我熟悉setText(String),但它似乎不起作用。我希望textArea根据用户输入的内容读取txt文件。我的代码如下:

first class: 

    public String getUsuario(){

        return txtUsuario.getText();
    }
}

second class: 

public class PanelResultado extends JPanel
{

    private JLabel lblMostrar;
    private JScrollPane scrollPane;
    private JTextArea textArea;
    private PanelUsuario panelUsuario;
    private InterfazMilkyWay principal;
    private PanelResultado resultado;

    /**
     * Constructor for objects of class PanelInfo
     */
    public PanelResultado()
    {
        this.setLayout(null);

        textArea = new JTextArea("");
        textArea.setEditable(false);
        textArea.setBorder(BorderFactory.createLineBorder(Color.gray));

        panelUsuario = new PanelUsuario();    

        //JScrollPane scrollPane = new JScrollPane(textArea);  // le pone un scrollPane al txtArea 

        lblMostrar = new JLabel("Resultado;");
        lblMostrar.setBounds(0,0,385,30);
        textArea.setBounds(0,30,440,110);  
        this.setBackground(Color.WHITE);

        add(lblMostrar);
        add(textArea);
        //add(scrollPane, BorderLayout.CENTER);




    }
    public void mostrar(){
        String tema = panelUsuario.getUsuario();
        String texto = "";
          switch (PlanetaActual.planetaActual){


            case 0:
             textArea.setText("holaaaa");
                if (tema.equals("temperatura") || tema.equals("Temperatura")){

                    System.out.println("temperatura");

                    texto = "";
                    try {
                        Scanner scanner = new Scanner(new File("temperatura mercurio.txt"));

                        while (scanner.hasNext()) {
                            // mientras el scanner tenga otra linea
                            texto += scanner.hasNext();


                        }
                        textArea.setText(texto);
                    } catch (FileNotFoundException e) {

                        texto = "El archivo no se encuentra";
                    }
                    textArea.setText(texto);
                }
                else if ( tema.equals("posicion") || tema.equals("Posicion")|| tema.equals("Posición")){
                            texto = "";
                    try {
                        Scanner scanner = new Scanner(new File("posicion mercurio.txt"));

                        while (scanner.hasNext()) {
                            // mientras el scanner tenga otra linea
                            texto += scanner.hasNext();

                        }
                    } catch (FileNotFoundException e) {
                        texto = "El archivo no se encuentra";
                    }
                    textArea.setText(texto);

               }else if (tema.equals("gravedad") || tema.equals("Gravedad")){
                            texto = "";
                    try {
                        Scanner scanner = new Scanner(new File("gravedad mercurio.txt"));

                        while (scanner.hasNext()) {
                            // mientras el scanner tenga otra linea
                            texto += scanner.hasNext();

                        }
                    } catch (FileNotFoundException e) {
                       texto ="El archivo no se encuentra";
                    }
                    textArea.setText(texto);

             }       else {
               texto ="no hay información de este tema en este planeta";
               textArea.setText(texto);
             }
             break;

1 个答案:

答案 0 :(得分:0)

这可能是因为您尝试更改private函数中的public变量。你必须改变

  

私人JTextArea textArea;

  

public JTextArea textArea;

我还没有测试过,所以我不确定这是不是问题。