Java 如何使用gettext和settext

Java 如何使用gettext和settext,java,Java,因此,我有两个不同的面板,第一个面板的工作原理应该是一样的,但可能需要Actionlistener来解决我的问题: class knopHandler implements ActionListener { public void actionPerformed ( ActionEvent e ) { JFrame frame2 = new JFrame ( "Total Hours" ); frame2.setSize ( 600, 500 );

因此,我有两个不同的面板,第一个面板的工作原理应该是一样的,但可能需要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 );
第一个面板有几个文本字段,人们可以在其中键入内容,我希望这些文本字段中的文本出现在第二个面板的文本字段中,但我不知所措。当我现在运行程序时,第二个面板的文本字段中没有显示任何内容

actionlistener中的“intResultAt”也应该出现在其中一个文本字段中,但我也无法让它正常工作

我是将setter/getter放在正确的位置,还是应该放在actionlistener中?还是我缺少了另一段代码?

比如说,您的按钮是jButton1,文本字段是jTextField1和jTextField2

为按钮添加actionListner,如下所示:

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中使用动作侦听器进行事件处理非常简单

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

  • 声明一个事件处理程序类,并指定该类 实现ActionListener接口或扩展 实现ActionListener接口。例如:
    公共类MyClass实现ActionListener{
  • 注册事件的一个实例 处理程序类作为一个或多个组件上的侦听器。例如:
    someComponent.addActionListener(instanceOfMyClass);
  • 包括 实现侦听器接口中的方法。例如:
    public void actionPerformed(ActionEvent e){
    …//对操作作出反应的代码…}
  • 我看到你已经在尝试做这些了

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


    一旦你解决了这个问题,你应该能够看到你想要的输出。

    这个问题太宽了。请考虑改变它并提供一个极小的例子。我理解,但是我不知道在代码中我需要在哪里,所以我想这就是我为什么这样做的原因。(我希望有人仍然可以帮助我。请提供一个。在这里发布一个完整的代码很简单,但我们不容易找到您想要的。希望现在编辑得更清楚。您想在点击按钮时在其他面板中显示文本吗?还是在用户键入时显示文本?对不起,我不明白您对InitComponents或的意思initblock..只学了几个星期的java..不管怎样,我都会继续尝试你的建议,并尝试一些不同的地方,谢谢你的帮助!@StefanBuijs我已经编辑了答案。我愚蠢地认为你在使用IDE(不知道为什么!).但你仍然可以简单地注册你的组件,并按照我所展示的方式执行一些操作。也谢谢VHS!现在就试试!它成功了,谢谢你的解释。为了上学,我整天都在努力解决这个问题,所以你不知道我有多感激它!再次感谢!@StefanBuijs。不客气。我很高兴我能帮助孩子们社区。遗憾的是,对于需要从
    maandaginvoer
    dinsdaginvoer
    等中添加不同数字的
    totaalurenvak
    不起作用。我有这样一个:
    totaalurenvak.setText(“+resultat”);
    但编译器告诉我缺少一个符号。我想问题出在其他方面,但我想我还是会问。我想我还有一些东西需要整理。@StefanBuijs尝试将getText()结果解析为Int。getText()方法返回字符串。