[英]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.