2016-11-30 14 views
0

Webサーバーの実行中にEclipseでJSPページを変更してから再コンパイルすると、次のページが読み込まれたときに変更内容がブラウザに表示されます。実行時にコンポーネントのスイングを変更することができます

JavaアプリケーションでSwingコンポーネントと同様のことをすることはできますか?テキストが"fname"のJLabelを含むJFrameがあるとします。私はそれを"first name"に変更して、実行中のアプリケーションのJLabelのテキストをすぐに変更して、アプリケーションを終了して再起動する必要がなくなりたいと思っています。それは私がそれを試しても動作しません。これを行う方法はありますか?

ありがとうございました。

/* 
* To change this license header, choose License Headers in Project Properties. 
* To change this template file, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package pack3; 


/** 
* 
* @author Love Poet 
*/ 
public class ChangeAtRuntime extends javax.swing.JFrame { 

    /** 
    * Creates new form ChangeAtRuntime 
    */ 
    public ChangeAtRuntime() { 
     initComponents(); 
    } 

    /** 
    * This method is called from within the constructor to initialize the form. 
    * WARNING: Do NOT modify this code. The content of this method is always 
    * regenerated by the Form Editor. 
    */ 
    @SuppressWarnings("unchecked") 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">       
    private void initComponents() { 

     jLabel1 = new javax.swing.JLabel(); 

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

     jLabel1.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N 
     jLabel1.setText("Name"); 

     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
     getContentPane().setLayout(layout); 
     layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGap(151, 151, 151) 
       .addComponent(jLabel1) 
       .addContainerGap(204, Short.MAX_VALUE)) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGap(116, 116, 116) 
       .addComponent(jLabel1) 
       .addContainerGap(162, Short.MAX_VALUE)) 
     ); 

     pack(); 
    }// </editor-fold>       

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String args[]) { 
     /* Set the Nimbus look and feel */ 
     //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> 
     /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. 
     * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
     */ 
     try { 
      for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
       if ("Nimbus".equals(info.getName())) { 
        javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
        break; 
       } 
      } 
     } catch (ClassNotFoundException ex) { 
      java.util.logging.Logger.getLogger(ChangeAtRuntime.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (InstantiationException ex) { 
      java.util.logging.Logger.getLogger(ChangeAtRuntime.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (IllegalAccessException ex) { 
      java.util.logging.Logger.getLogger(ChangeAtRuntime.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
      java.util.logging.Logger.getLogger(ChangeAtRuntime.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } 
     //</editor-fold> 

     /* Create and display the form */ 
     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       new ChangeAtRuntime().setVisible(true); 
      } 
     }); 
    } 

    // Variables declaration - do not modify      
    private javax.swing.JLabel jLabel1; 
    // End of variables declaration     
} 
+0

あなたはそれが簡単に、人間が読むことができるようにあなたの質問のフォーマットについて –

+0

せずに何もできないと私は任意のもののように、今はいけませんこの –

+0

を意味する何段落 –

答えて

1

実行時に、あなたのJLabelのインスタンスにsetText()メソッドを呼び出した場合、それが表示されるテキストを更新する必要があります。ラベルの変更をトリガーするイベントハンドラーからsetText()に電話するだけです。

編集:コードを追加したので、関連するセクションを更新して、このようなことを試すことをお勧めします。それは概念を証明するはずです。

public void run() { 
    ChangeAtRuntime change = new ChangeAtRuntime(); 
    change.setVisible(true); 
    change.jLabel1.setText("New text..."); 
} 

このコードは意味がありますか?

編集2:クラス全体のコードを追加する。

public class ChangeAtRuntime extends javax.swing.JFrame { 
/** 
* Creates new form ChangeAtRuntime 
*/ 
public ChangeAtRuntime() { 
    initComponents(); 
} 

/** 
* This method is called from within the constructor to initialize the form. 
* WARNING: Do NOT modify this code. The content of this method is always 
* regenerated by the Form Editor. 
*/ 
@SuppressWarnings("unchecked") 
// <editor-fold defaultstate="collapsed" desc="Generated Code">       
private void initComponents() { 

    jLabel1 = new javax.swing.JLabel(); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

    jLabel1.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N 
    jLabel1.setText("Name"); 

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addGroup(layout.createSequentialGroup() 
          .addGap(151, 151, 151) 
          .addComponent(jLabel1) 
          .addContainerGap(204, Short.MAX_VALUE)) 
    ); 
    layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addGroup(layout.createSequentialGroup() 
          .addGap(116, 116, 116) 
          .addComponent(jLabel1) 
          .addContainerGap(162, Short.MAX_VALUE)) 
    ); 

    pack(); 
}// </editor-fold>       

/** 
* @param args the command line arguments 
*/ 
public static void main(String args[]) { 
    /* Set the Nimbus look and feel */ 
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> 
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. 
    * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
    */ 
    try { 
     for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
      if ("Nimbus".equals(info.getName())) { 
       javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
       break; 
      } 
     } 
    } catch (ClassNotFoundException ex) { 
     java.util.logging.Logger.getLogger(ChangeAtRuntime.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (InstantiationException ex) { 
     java.util.logging.Logger.getLogger(ChangeAtRuntime.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (IllegalAccessException ex) { 
     java.util.logging.Logger.getLogger(ChangeAtRuntime.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
     java.util.logging.Logger.getLogger(ChangeAtRuntime.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } 
    //</editor-fold> 

    /* Create and display the form */ 
    java.awt.EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      ChangeAtRuntime change = new ChangeAtRuntime(); 
      change.setVisible(true); 
      change.jLabel1.setText("New text..."); 
     } 
    }); 
} 

// Variables declaration - do not modify      
private javax.swing.JLabel jLabel1; 
// End of variables declaration     
} 
+0

実際にsi io nevverはguiのコーディング部分を使用します。私はいつもnetbeansをドラッグアンドドロップしていますので、もっと小さなplsを助けることができます –

+0

あなたのコードは現在どのように見えますか? –

+0

ok私はコード –

関連する問題