【问题标题】:Set properties of multiple different JButtons in a loop在循环中设置多个不同 JButton 的属性
【发布时间】:2013-01-14 00:58:30
【问题描述】:
String[] objectName = {  //these are all names for JButtons
            "firstBtn",
            "secondBtn",
            "thirdBtn",
            "coin1",
            "coin5",
            "coin25",
            "coin100"
    };    

for (int k=0;k<objectName.length;k++){
    objectName[o].setOpaque(false);
    objectName[o].setContentAreaFilled(false);
    objectName[o].setBorderPainted(false);
}

我试图以这种方式缩短代码,因为我认为这样会更容易。但是它不起作用。有没有办法让这段代码工作,或者我必须为每个 JButton 一次又一次地写同样的东西

【问题讨论】:

    标签: java swing loops jbutton subclassing


    【解决方案1】:

    您可以继承 JButton 并执行以下操作,

    public class MyButton extends JButton{
        public MyButton(){
            setOpaque(false);
            setContentAreaFilled(false);
            setBorderPainted(false);
        }
    }
    

    然后创建实例,

    JButton firstBtn = new MyButton();
    .
    .
    

    【讨论】:

    • 据我所知,在 GUI 派生类构造函数中调用 super() 构造函数以确保默认 GUI 操作是一种很好的做法。但我可能错了。
    • 这可行,但它阻止我像往常一样初始化它(EX. JButton btn = new JButton("EXAMPLE");)
    • @Exikle 代替 public MyButton(){setOpaque(false); ... 尝试 public MyButton(String text){ super(text); setOpaque(false); //and rest of your operations}。此构造函数将允许您创建 MyButton 类的对象,并将标题作为参数,因此您可以像 JButton btn = new MyButton("YourName"); 一样使用它
    猜你喜欢
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 2021-07-01
    相关资源
    最近更新 更多