gpt4 book ai didi

java - JButtons 仅在鼠标悬停时起作用

转载 作者:行者123 更新时间:2023-12-01 11:59:05 26 4
gpt4 key购买 nike

我是 Java 和编程的初学者,我首先制作了一个带有几个按钮的简单 JFrame。现在,当我创建按钮时,它们出现的唯一方式是用鼠标将鼠标悬停在它们上方。

import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.GridBagLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Main extends JFrame {

public Main() {
setTitle("Test");
setSize(600, 500);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());
JPanel p = new JPanel();
JButton b = new JButton("Derp");
p.add(b);
add(b);
setVisible(true);
revalidate();
repaint();
}

public static void main(String[] args) {
new Main();
}

public void paint(Graphics g) {
g.drawString("Under Construction...", 240, 250);

}

}

如果您能提供帮助,我们将不胜感激,另请注意,我对 Java 不太了解,也不知道这些语言的传承量。另外,一种使按钮具有 Aero 纹理而不是默认纹理的方法会很好:)

最佳答案

由于您重写了 paint,因此您需要调用 super.paint(g); 作为第一行。

public void paint(Graphics g) {
super.paint(g); // <-- add this.
g.drawString("Under Construction...", 240, 250);
}

此外,您应该将逻辑移出 main() 线程;喜欢

SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Main();
}
});

关于java - JButtons 仅在鼠标悬停时起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28122254/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com