【发布时间】:2019-10-29 22:35:26
【问题描述】:
基本上,我试图做到这一点,因此每次单击 JFrame 中的某个位置时,JLabel 都会加 1。问题是,如果我要打印出数量的值,它会增加,但实际JLabel 继续保持不变。
为了尝试解决此问题,我尝试在您每次单击时更新 JLabel 对象,但这似乎也不起作用。 (通过写“JLabel();”来做到这一点)除此之外,我真的想不出它可能是什么,
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Franels extends MouseAdapter {
int width, height;
int amount = 0;
JFrame frame = new JFrame("Title");
JPanel panel = new JPanel();
JButton button = new JButton("Hello");
JLabel label = new JLabel();
public void FrameConfig(int width, int height) {
this.width = width;
this.height = height;
frame.setSize(width, height);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setLayout(null);
frame.setResizable(false);
frame.add(panel);
frame.getContentPane().addMouseListener(new Franels());
}
public void PanelConfig() {
panel.setBounds(300, 300, 300, 300);
panel.setBackground(Color.blue);
panel.setVisible(true);
panel.add(label);
}
public void LabelConfig() {
label.setForeground(Color.red);
label.setText(String.valueOf(amount));
}
public void mouseClicked(MouseEvent e) {
amount++;
LabelConfig();
System.out.println(amount);
}
}
import javax.swing.*;
import java.awt.*;
public class Main {
public static void main(String args[]) {
Franels windows = new Franels();
windows.FrameConfig(900, 900);
windows.PanelConfig();
windows.LabelConfig();
}
}
【问题讨论】:
-
你永远不会修改标签的值
-
@MadProgrammer 我添加了“JLabel();”我认为应该更新它。
-
与您的问题无关,但您应该更改
JLabelmethod 的名称。它不符合java naming convention 并且具有误导性,因为它也是一个类的名称 -
@jhamon 哦,是的,当然,这对我来说更重要,当我发帖时我没有注意到这一点。抱歉,我会改的。
-
你不要打电话给
PanelConfig()。代码中缺少部分? java naming convention, Why is it frowned upon to use a null layout in Swing?
标签: java swing jpanel jlabel mouselistener