Я новичок в Java, и я хотел сделать простой GUI с кнопкой, которая учитывается, когда вы нажимаете на нее, я следовал этому руководству на YouTube, чтобы добраться туда. Все прошло очень хорошо, и все сработало. Но одного не произошло: конец текста JLabel
идет от числа (9
) до ...
. Изменение размера окна вручную возвращает число, поэтому я попытался изменить размер шрифта, окна, кнопки и размера метки в коде при его запуске, что работает , но у меня все равно возникает та же проблема.
Это мой код для кнопки:
JButton button = new JButton("Click me!");
button.addActionListener(this);
... который, я полагаю, мог бы назвать это:
public void actionPerformed(ActionEvent e) {
count++;
label.setText("Number of clicks: " + count);
}
Я пробовал другие решения по другим вопросам но они совершенно не помогли.
Мой полный код для GUI таков:
package javaGUI;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class GUI implements ActionListener {
private int count = 0;
private JLabel label;
private JFrame frame;
private JPanel panel;
public GUI() {
frame = new JFrame();
JButton button = new JButton("Click me!");
button.addActionListener(this);
button.setPreferredSize(new Dimension(10, 75));
label = new JLabel("Number of clicks: 0");
label.setFont(new Font("System", Font.PLAIN, 22));
panel = new JPanel();
panel.setBorder(BorderFactory.createEmptyBorder(60, 100, 30, 100));
panel.setLayout(new GridLayout(0, 1));
panel.add(button);
panel.add(label);
frame.add(panel, BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("GUI");
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
new GUI();
}
@Override
public void actionPerformed(ActionEvent e) {
count++;
label.setText("Number of clicks: " + count);
label.setHorizontalTextPosition(JLabel.CENTER);
label.setVerticalTextPosition(JLabel.CENTER);
}
}