1
与前面的问题关联:我想绘制面板。我有以下类:JPanel不在JFrame上绘制
GMain.java
public class GMain{
static frmDashboard fDB;
public static void main(String[] args) {
fDB = new frmDashboard();
fDB.setTitle("Graphics Mate");
fDB.setVisible(true);
fDB.pack();
}
}
frmDashboard.java
public class frmDashboard extends javax.swing.JFrame {
public frmDashboard() {
initComponents();
Clear();
}
private void btnPlotActionPerformed(java.awt.event.ActionEvent evt) {
frmCPlot fCP = new frmCPlot();
fCP.setVisible(true);
fCP.pack();
}
}
frmCPlot.java
public class frmCPlot extends javax.swing.JFrame {
int W, H;
int N;
public frmCPlot() {
initComponents();
CPanel cp = new CPanel();
this.getContentPane().add(cp);
System.out.println("WW = " + cp.getWidth() +
" HH = " + cp.getHeight());
}
class CPanel extends JPanel{
int i, j;
public CPanel(){
setPreferredSize(new Dimension(400, 400));
setBackground(Color.WHITE);
}
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawLine(0, 0, this.getWidth(), this.getHeight());
}
}
}
显示frmCPlot,但不显示CPanel。不是在谈论这条线。多,从frmCPlot.java输出为:
*WW = 0 HH = 0*
我后面的书的说明。我尝试在CPanel类的frmCPlot类中添加重绘,但没有用。有什么想法?
感谢名单。作品。我的GUI是在Netbeans中。为什么我必须编写所有这些东西,在netbeans中只需要添加设计JPanel到JFrame?也就是说netbeans中没有东西的原因是什么,所以我必须编写代码? –
@EbticBobo我认为你的意思是Netbeans是你的IDE或编程环境;)。或者你的意思是你在Netbeans中创建了你的GUI?而且我不太确定你是否在讨论代码完成(它可以帮助你通过预测来完成代码行),或者其他的东西。但是,在很多情况下,无论您使用Netbeans还是Eclipse,都是无关紧要的。 – Eames