第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java - 為什么我的按鈕沒有顯示在面板中?

Java - 為什么我的按鈕沒有顯示在面板中?

湖上湖 2021-09-12 20:11:58
我正在努力學(xué)習(xí)Java Swing?,F(xiàn)在,我正在制作一個簡單的程序,我需要制作一個按鈕。我有兩個班級:司機(jī)和秋千。我創(chuàng)建了按鈕并導(dǎo)入javax.swing.JButton并添加了按鈕。最后,按鈕添加到面板,但我不知道為什么我只得到面板?任何人都可以幫助我嗎?這是我的代碼: import javax.swing.JButton;    import javax.swing.JFrame;    import javax.swing.JLabel;    import javax.swing.JPanel;public class Swing extends JFrame {    private JFrame f;    private JButton button;    private JLabel label;    private JPanel panel;     public Swing() {    }    public Swing(String titleName) {        creatButton();        creatFrame(titleName);    }    public void creatButton() {        JButton btn = new JButton("click me");        JPanel panel = new JPanel();        panel.add(btn);        btn.setBounds(50, 100, 95, 30);        add(panel);    }    private void creatFrame(String title) {        JFrame f = new JFrame(title);        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        f.setVisible(true);        f.setSize(400, 500);        f.setLayout(null);    }}public class Driver {    public static void main (String [] args) {        new Swing ("calculator");    }}
查看完整描述

2 回答

?
MM們

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個贊

好吧,讓我們開始吧……


JButton btn = new JButton("click me");

JPanel panel = new JPanel();

panel.add(btn);

btn.setBounds(50, 100, 95, 30);

add(panel);

你:


創(chuàng)建一個按鈕

創(chuàng)建面板

您將按鈕添加到面板

您將面板添加到框架

進(jìn)而...


JFrame f = new JFrame("calculator");

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.add(new 

f.setVisible(true);

您創(chuàng)建了一個全新的實(shí)例JFrame并顯示它,但它沒有任何內(nèi)容?!??!


相反,您應(yīng)該避免從擴(kuò)展JFrame或使用JPanel,例如...


public class Swing extends JPanel {


    private JButton button;

    private JLabel label;


    public Swing() {

        creatButton();

        add(button);

    }


    public void creatButton() {

        JButton btn = new JButton("click me");

    }

}

然后您可以創(chuàng)建一個窗口(或其他容器)并將其添加到其中


JFrame f = new JFrame(title);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.add(new Swing());

f.pack(); 

f.setLocationRelativeTo(null);

f.setVisible(true);

作為一般規(guī)則,它JFrame是一個非常糟糕的擴(kuò)展點(diǎn),它是一個復(fù)雜的復(fù)合組件并將您鎖定在單個用例中。通常,從JPanel為您提供更多靈活性和更少復(fù)雜性并且易于重用的東西開始是一個更好的主意。


你真的,真的,真的需要避免null布局


查看完整回答
反對 回復(fù) 2021-09-12
?
阿晨1998

TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個贊

creatFrame 正在創(chuàng)建一個不同于框架本身的新 JFrame(您的 Swing 類擴(kuò)展 JFrame)。

刪除該行:

JFrame f = new JFrame(title);

并調(diào)用方法this而不是f.


查看完整回答
反對 回復(fù) 2021-09-12
  • 2 回答
  • 0 關(guān)注
  • 231 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號