1

2 つのボタン (インクリメント/デクリメント) とラベルを持つユーザーにアプリケーションを実装することになっています。インクリメントを押すと数値が増加し、デクリメントを押すと数値が 1 減少します。数字は50から始まります。ボタンが表示され、機能する場所まで持っていますが、2つの異なる変数で機能するため、1ではなく2つの数字が画面に出力されます。私の質問は、ボタンを機能させる方法ですたった1つの番号で。人々がプッシュなどを使用しているのを見てきましたが、両方または何かに値を渡すことでこれを行う別の方法はありますか? ありがとう

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class ButtonModifier 
{
    public static void main(String[] args)
    {
        JFrame frame = new JFrame();

        FlowLayout flow = new FlowLayout();
        frame.getContentPane().setLayout(flow);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400,300);
        frame.setTitle("Button Modifier");

        IncrementPanel panel = new IncrementPanel();
        DecrementPanel panel1 = new DecrementPanel();

        frame.add(panel);
        frame.add(panel1);

        frame.setVisible(true);
    }
}

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class DecrementPanel extends JPanel
{
    private JButton button1;
    private JLabel label;
    private int number = 50;

    public DecrementPanel()
    {
        button1 = new JButton("Decrement");
        button1.addActionListener(new /*DecrementPanel.*/ButtonListener());

        label = new JLabel("" + number);


        this.add(button1);
        this.add(label);
    }

    private class ButtonListener implements ActionListener
    {
        public void actionPerformed(ActionEvent event)
        {
            //int increment = 50;

            number--;

            label.setText("" + number);


        }
    }

}

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class IncrementPanel extends JPanel
{
    private JButton button;
    private JLabel label;
    int number = 50;

    public IncrementPanel()
    {
        button = new JButton("Increment");
        button.addActionListener(new ButtonListener());

        label = new JLabel("" + number);

        this.add(button);
        this.add(label);
    }

    private class ButtonListener implements ActionListener
    {
        public void actionPerformed(ActionEvent event)
        {
            //int increment = 50;

            number++;

            label.setText("" + number);
        }
    }

}
4

6 に答える 6

0

main 関数で JLabel を作成します。incrementPanel および DecrementPanel クラスのコンストラクターが、プライベート変数として格納する引数として JLabel を取るようにします。ButtonListeners csn には、JLabel も引数として渡されます。これで、ボタン リスナー csn が共通の JLabel を更新します。これで、+1 または -1 のインクリメントを示す int をコンストラクターに渡して、IncrementPanel クラスと DecrementPanel クラスのコードを組み合わせることで、状況を改善できます。機能を実装する手っ取り早い方法は、単一のモノリシック クラス内でボタン リスナーを実装する匿名クラスを使用することです。

于 2013-11-12T18:50:48.373 に答える
-1

AWT を使用して Java GUI アプリケーションを作成する

1 つのラベル (Count)、1 つのテキストフィールド、1 つのボタン (Increment)、1 つのボタン (Decrement)、および 1 つのボタン (Close) を作成する必要があります。

インクリメントボタンをクリックすると、テキストフィールドの値をインクリメントする必要があり、ボタンをクリックすると値が何度もインクリメントされる必要があります

デクリメント ボタンをクリックすると、テキスト フィールドの値をデクリメントする必要があります。ボタンをクリックすると、値を何度もデクリメントする必要があります。

閉じるボタンをクリックすると、AWT フレームを閉じる必要があります。

于 2020-08-12T16:08:38.740 に答える