繁体   English   中英

JButton仅在鼠标悬停时起作用

[英]JButtons Only Working When Mouse Hovers Over

我是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();
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM