Member 13310143 Ответов: 1

Как заставить кнопки на этом графическом интерфейсе работать?


Я пытаюсь создать графический интерфейс, который увеличит число, когда вы нажмете одну кнопку, и уменьшит это число, когда вы нажмете другую кнопку. Это мой код:

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


public class PushCounter
{
    static JTextField textArea;
	static int count = 0;
    
	public static void main(String[] args)
	{
		
		JFrame frame = new JFrame("PushCounter");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		JPanel panel = new JPanel();
		JButton upButton = new JButton("Up");
		JButton downButton = new JButton("Down");
		JTextField textArea = new JTextField(15);
		JLabel label = new JLabel("Count");
		
		
		upButton.addActionListener(new upButtonListener());
		downButton.addActionListener(new downButtonListener());
		
		panel.add(label);
		panel.add(textArea);
		panel.add(downButton);
		panel.add(upButton);
		
		
		frame.getContentPane().add(panel);
		frame.setVisible(true);
		frame.pack();
		
	}
	
	private static class upButtonListener implements ActionListener
	{
		
		public void actionPerformed(ActionEvent event)
		{
			++count;
			textArea.setText(Integer.toString(count));
		}
	}
	
	private static class downButtonListener implements ActionListener
	{
		
		public void actionPerformed(ActionEvent event)
		{
			--count;
			textArea.setText(Integer.toString(count));
		}
	}
	
}


Он компилируется, но сам графический интерфейс не работает. Делать то, что случилось с ним? Как бы вы создали что-то подобное и почему?

Что я уже пробовал:

Я сделал внутренние классы статичными, чтобы исправить невозможно сделать статическую ссылку на нестатическое поле ошибка. Это должно было заставить его компилироваться. Я понятия не имею, что с ним сейчас.

Richard MacCutchan

Что вы имеете в виду - не работает"?

Member 13310143

Если вы запустите код, то увидите графический интерфейс с меткой, текстовым полем и 2 кнопками. При нажатии любой из кнопок происходит сбой программы. Не знаю почему.

Richard MacCutchan

Перейдите по ссылке, которую я дал вам ниже, и изучите статью. Он объясняет, как это сделать правильно.