如何使用 gettext 和 settext



所以我有 2 个不同的面板,第一个面板正常工作,但可能需要 Actionlistener 来解决我的问题:

class knopHandler implements ActionListener
{
public void actionPerformed ( ActionEvent e )
{
JFrame frame2 = new JFrame ( "Total Hours" );
frame2.setSize ( 600, 500 );
JPanel uitvoerpanel = new uitvoerpanel();
frame2.setContentPane( uitvoerpanel );
frame2.setVisible( true );
frame1.setVisible( false );
String invoerstring1 = maandaginvoer.getText();
int getal1 = Integer.parseInt( invoerstring1 );
String invoerstring2 = dinsdaginvoer.getText();
int getal2 = Integer.parseInt( invoerstring2 );
String invoerstring3 = woensdaginvoer.getText();
int getal3 = Integer.parseInt( invoerstring3 );
String invoerstring4 = donderdaginvoer.getText();
int getal4 = Integer.parseInt( invoerstring4 );
String invoerstring5 = vrijdaginvoer.getText();
int getal5 = Integer.parseInt( invoerstring5 );
String invoerstring6 = zaterdaginvoer.getText();
int getal6 = Integer.parseInt( invoerstring6 );
String invoerstring7 = zondaginvoer.getText();
int getal7 = Integer.parseInt( invoerstring7 );
int resultaat = getal1 + getal2 + getal3 + getal4 + getal5 + getal6 + getal7;   
} 
}

第二个面板的相关部分如下所示:

public uitvoerpanel()
{
setLayout( null );
naamvak = new JTextField ( 20 );
naamvak.setHorizontalAlignment ( JTextField.LEFT );
naamvak.setEditable ( false );
naamvak.setText( naaminvoer.getText() );
badgevak = new JTextField ( 20 );
badgevak.setHorizontalAlignment ( JTextField.LEFT );
badgevak.setEditable ( false );
badgevak.setText( badgeinvoer.getText() ) ;
totaalurenvak = new JTextField ( 20 );
totaalurenvak.setHorizontalAlignment ( JTextField.LEFT );
totaalurenvak.setEditable ( false );
totaalurenvak.setText( "" + resultaat );

第一个面板有几个文本字段,人们可以在其中键入一些内容,我希望这些文本字段中的文本出现在第二个面板的文本字段中,但我不知所措。当我运行程序时,现在第二个面板的文本字段中没有任何内容。

来自动作监听器的"int resultaat"也应该出现在其中一个文本字段中,但我也无法让它工作。

例如,我是否将二传手/吸气器放在正确的位置,或者应该在动作监听器中?还是我缺少另一段代码?

比如说,你的按钮是jButton1,你的textFields是jTextField1和jTextField2

为按钮添加操作列表器,如下所示:

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

然后简单地实现此方法:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
String s=jTextField1.getText();
jTextField2.setText(s);
} 

在 Swing 中使用动作侦听器进行事件处理非常简单。

如文档中所述,您需要执行以下步骤:

  1. 声明一个事件处理程序类,并指定该类 实现 ActionListener 接口或扩展一个类 实现 ActionListener 接口。例如:public class MyClass implements ActionListener {
  2. 注册事件的实例 作为一个或多个组件上的侦听器的处理程序类。例如:someComponent.addActionListener(instanceOfMyClass);
  3. 包括以下代码: 在侦听器接口中实现方法。例如:public void actionPerformed(ActionEvent e) { ...//code that reacts to the action... }

我看到你已经在尝试做其中的一些。

方法中的问题是,在作为组件容器的面板上不能有操作侦听器。您需要为各个组件定义操作侦听器,例如,在您的情况下,文本字段maandaginvoer.您需要使用面板 1 上的文本字段注册(步骤 2)您的侦听器。

解决此问题后,您应该能够看到所需的输出。

最新更新