我在调用我制作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不会出现。 任何人都可以帮我这个吗?
谢谢!
答案 0 :(得分:1)
从可见框添加(或删除)组件的基本代码是:
panel.add(...);
panel.revalidate();
panel.repaint();
在您的情况下,“面板”将是您的JFrame的内容窗格。
此外,当您进行自定义绘制时,还需要覆盖面板的getPreferredSize()
方法,以便布局管理器可以使用此信息来设置面板的大小/位置。
答案 1 :(得分:0)
虽然您已将面板添加到框架中,但它最初将位于(0,0),尺寸为0×0,因此您将无法看到它。您需要调整大小和位置,例如在框架上调用pack()
。
答案 2 :(得分:0)
您可能忘记在ActionListner
上添加JButton
。
尝试这种方式
JButton jButton = new JButton("Click"); // Your actual button is here
jButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jButtonActionPerformed(e);
}
});