Как сделать максимальное значение для спиннера в netbeans через код? - PullRequest
0 голосов
/ 30 декабря 2018

Я делаю проект в Java, который использует решетку и помещает в нее элементы, я сделал выбор, где позиция в решетке (x, y) будет выбрана с помощью счетчика, но я столкнулся с проблемой, где яНеобходимость установить максимальное значение для счетчиков зависит от того, что пользователь сделал размеры решетки радиатора, так что это будет изменять максимальное значение счетчика только через код.Есть ли функция, которую я могу использовать или так?

1 Ответ

0 голосов
/ 30 декабря 2018

Вы можете установить максимальное значение JSpinner, используя SpinnerNumberModel.setMaximum().См. Пример ниже.

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JSpinner;
import javax.swing.JTextField;
import javax.swing.SpinnerNumberModel;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class SpinnerMax
{
  public static void main(String[] args)
  {
    SpinnerNumberModel model = new SpinnerNumberModel(20, 10, 50, 10);
    JSpinner spinner = new JSpinner(model);

    JButton button = new JButton("Set New Max Value");
    button.addActionListener(new ActionListener()
    {
      @Override
      public void actionPerformed(ActionEvent e)
      {
        model.setMaximum(70);
      }
    });

    JFrame f = new JFrame("Spinner");
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.getContentPane().setLayout(new FlowLayout());
    f.getContentPane().add(new JLabel("Value:"));
    f.getContentPane().add(spinner);
    f.getContentPane().add(new JLabel("New Max Value:"));
    f.getContentPane().add(new JTextField(10));
    f.getContentPane().add(button);
    f.setBounds(300, 200, 400, 300);
    f.setVisible(true);
  }
}
...