簡體   English   中英

在JFrame上調用JPanel

[英]Calling a JPanel onto a JFrame

我在調用我制作為JFrame的JPanel時遇到麻煩。

JPanel稱為“ SubnetPanel” ==>

SubnetPanel panel = new SubnetPanel(String a, String b, String c);

在我的JFrame中,我做了一個按鈕。

private void jButtonActionPerformed(java.awt.event.ActionEvent evt) {                                          
    // TODO add your handling code here:
    String a = JOptionPane.showInputDialog(null, "Geef de naam in : ", 
    "Naam", 1);
    String b = JOptionPane.showInputDialog(null, "Geef het netwerkadres in : ", 
    "Netwerkadres", 1);
    String c = JOptionPane.showInputDialog(null, "Geef het subnetmask in : ", 
    "Subnetmask", 1);

    this.add(new SubnetPanel(a,b,c) {
             @Override
             public void paintComponent( Graphics g ) {
                super.paintComponent(g);
                Graphics2D g2 = (Graphics2D)g;

                Line2D line = new Line2D.Double(10, 10, 40, 40);
                g2.setColor(Color.blue);
                g2.setStroke(new BasicStroke(10));
                g2.draw(line);
             }
        });
        this.setVisible( true );

} 

但是,當我執行JFrame並單擊按鈕時,JFrame不會出現。 誰能幫我這個?

謝謝!

從可見框中添加(或刪除)組件的基本代碼是:

panel.add(...);
panel.revalidate();
panel.repaint();

在您的情況下,“面板”將是JFrame的內容面板。

另外,在進行自定義繪畫時,還需要覆蓋面板的getPreferredSize()方法,因此布局管理器可以使用此信息來設置面板的大小/位置。

盡管已將面板添加到框架,但面板最初將位於(0,0),大小為0×0,因此您將無法看到它。 您需要調整大小和位置,例如通過在框架上調用pack()

可能是您忘記在JButton上添加ActionListner了。

嘗試這種方式

    JButton jButton = new JButton("Click"); // Your actual button is here
    jButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {                
            jButtonActionPerformed(e);
        }
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM