簡體   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