2011-06-09 82 views
0

公共类FormattedName延伸javax.swing.JFrame中的{更新/获取/同步由用户一个JTextField输入中的一类,以一个JTextField另一类

/** Creates new form FormattedName */ 
public FormattedName() { 
    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() { 

    Formatted = new javax.swing.JTextField(); 
    NameOpt = new javax.swing.JButton(); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

    Formatted.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      FormattedActionPerformed(evt); 
     } 
    }); 

    NameOpt.setText("Name"); 
    NameOpt.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      NameOptActionPerformed(evt); 
     } 
    }); 

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addContainerGap() 
      .addComponent(NameOpt) 
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
      .addComponent(Formatted, javax.swing.GroupLayout.PREFERRED_SIZE, 144, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addGap(21, 21, 21) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
       .addComponent(NameOpt) 
       .addComponent(Formatted, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
      .addContainerGap(21, Short.MAX_VALUE)) 
    ); 

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

private void FormattedActionPerformed(java.awt.event.ActionEvent evt) { 
    // TODO add your handling code here: 
} 

private void NameOptActionPerformed(java.awt.event.ActionEvent evt) { 
    // TODO add your handling code here: 
    Opt option = new Opt(); 

} 


/** 
* @param args the command line arguments 
*/ 
public static void main(String args[]) { 
    java.awt.EventQueue.invokeLater(new Runnable() { 

     public void run() { 
      new FormattedName().setVisible(true); 
     } 
    }); 
} 
// Variables declaration - do not modify 
private javax.swing.JTextField Formatted; 
private javax.swing.JButton NameOpt; 
// End of variables declaration 

}

和另一类

公共类选项扩展javax.swing.JFrame中{

/** Creates new form Opt */ 
public Opt() { 
    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() { 

    firstname = new javax.swing.JLabel(); 
    lastname = new javax.swing.JLabel(); 
    middleName = new javax.swing.JLabel(); 
    first_name = new javax.swing.JTextField(); 
    last_name = new javax.swing.JTextField(); 
    middlename = new javax.swing.JTextField(); 
    jButton1 = new javax.swing.JButton(); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

    firstname.setText("FirstName"); 

    lastname.setText("LastName"); 

    middleName.setText("MiddleName"); 

    first_name.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      first_nameActionPerformed(evt); 
     } 
    }); 

    last_name.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      last_nameActionPerformed(evt); 
     } 
    }); 

    jButton1.setText("OK"); 

    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(19, 19, 19) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) 
       .addComponent(jButton1) 
       .addGroup(layout.createSequentialGroup() 
        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) 
         .addComponent(middleName) 
         .addComponent(lastname) 
         .addComponent(firstname)) 
        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) 
         .addComponent(first_name, javax.swing.GroupLayout.DEFAULT_SIZE, 85, Short.MAX_VALUE) 
         .addComponent(last_name) 
         .addComponent(middlename)))) 
      .addContainerGap(22, Short.MAX_VALUE)) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addContainerGap() 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
       .addComponent(firstname) 
       .addComponent(first_name, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
      .addGap(18, 18, 18) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
       .addComponent(lastname) 
       .addComponent(last_name, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
      .addGap(18, 18, 18) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) 
       .addComponent(middleName) 
       .addComponent(middlename, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
      .addComponent(jButton1) 
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
    ); 

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

private void first_nameActionPerformed(java.awt.event.ActionEvent evt) { 
    // TODO add your handling code here: 
} 

private void last_nameActionPerformed(java.awt.event.ActionEvent evt) { 
    // TODO add your handling code here: 
} 

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    // TODO add your handling code here: 
    String firstname = first_name.getText(); 
    String lastname = last_name.getText(); 
    outputName = firstname + lastname; 
} 

/** 
* @param args the command line arguments 
*/ 
public static void main(String args[]) { 
    java.awt.EventQueue.invokeLater(new Runnable() { 

     public void run() { 
      new Opt().setVisible(true); 
     } 
    }); 
} 

private String outputName; 
// Variables declaration - do not modify 
private javax.swing.JTextField first_name; 
private javax.swing.JLabel firstname; 
private javax.swing.JButton jButton1; 
private javax.swing.JTextField last_name; 
private javax.swing.JLabel lastname; 
private javax.swing.JLabel middleName; 
private javax.swing.JTextField middlename; 
// End of variables declaration 

}

如何同步类选项文本框进入到类FormattedName的文本字段瓦特/或W/O OK按钮的事件的输入。

尝试使用get(),但不工作。

+0

什么你可能会寻找被称为“绑定”。看看BBB(http://kenai.com/projects/betterbeansbinding/pages/Home)或JGoodies-Binding(http://www.jgoodies.com/downloads/libraries.html);我个人更喜欢后者,但意见可能不同。 – jfpoilpret 2011-06-09 11:27:10

回答

0

创建选项getter方法描述文字,沿

public String getFullName(){ 
    return first_name.getText() + middelname.getText() + last_name.getText(); 
} 

您可以在nameOptActionPerformed()

private void nameOptActionPerformed(java.awt.event.ActionEvent evt) { 
    Opt option = new Opt(); 
    option.setVisible(true); 

} 

使用此线的东西,现在你有两个选择

  1. 使选类模态的JDialog代替的JFrame或
  2. 将OK按钮的事件处理公开给FormattedName类。

编号亲自与模态对话框。

+0

我在Opt类中添加getFullname()方法,并在FormattedName类中添加新的Opt()。getFullName();在FormattedActionPerformed(java.awt.event.ActionEvent evt).still不工作。 – reukEN11 2011-06-09 10:56:06

+0

@reukEN你需要让用户先输入一些东西!这就是模态对话的原因。即等待窗口关闭,然后读取输入。 – 2011-06-09 10:58:20

+0

giraffe.i see.nope,我没有将其更改为JDialog.i声明称为全名在选项然后在getFullName(){全名= first_name.getText()的私人变种......;返回全名} .in格式化名称,添加Formatted.setText(new Opt()。getFullName()); ñ仍然does not work.am我在这里搞错了什么?当我阅读关于访问其他类的var时,做了这个。读取也关于可观察ñ可以在这里应用一个简单的文本输出吗? – reukEN11 2011-06-09 11:11:47