我正在嘗試創建一個自定義的JButton。我注意到,當我聲明類class MyButton extends JButton
時,它工作正常。但是當我將類名更改爲private class MyButton
或protect class MyButton
時,Eclipse顯示「非法修飾符」錯誤。Java類的修飾符
據我所知,只有一個類可以在一個文件中聲明爲public,但是將其聲明爲私有類有什麼問題?有人可以幫助解釋這種情況下不同的修飾符如何用於類?謝謝!
class MyButton extends JButton {
@Override
protected void paintComponent(Graphics g){
Graphics2D g2d =(Graphics2D)g;
g2d.setColor(new Color(200,50,50,255));
g2d.fill(new RoundRectangle2D.Float(0,0,getWidth(),getHeight(),100,100));
}
}
public class CustomButton extends JFrame{
public CustomButton(){
add(new MyButton());
}
public static void main(String[] args) {
CustomButton b = new CustomButton();
b.setVisible(true);
}
}
我沒有在您的示例中看到內部類......更不用說了你不會看到任何帶有你的'MyButton'的文字或圖標... – MadProgrammer 2014-09-19 02:13:49
這不是內在的課堂!內部類應該在父類中 - 你的'CustomButton'類是外部的。 – 2014-09-19 02:18:32
謝謝你們指出這一點!我很困惑那個定義和類修飾符。我編輯了這個問題。希望它現在讀得更好。 – stillAFanOfTheSimpsons 2014-09-19 02:26:38