我有一个MyFrame
类延伸JFrame
。我使用NET BEANS中的设计选项将组件(控件即按钮)添加到此框架。我有一个MyCanvas
类,它使用覆盖的paintComponent()
方法扩展了JPanel
。我正在尝试将此组件添加到MyFrame
类。但是,当我添加它并使其可见时,画布(JPanel
)不会显示在JFrame
上。 (首先,我试图添加Mycanvas
类延长Canvas
。但是,然后我在这里读一个线程,尝试将其更改为JPanel
。我也没有工作。对于画布我显然使用油漆不是paintcomponent()
) 我的代码是这里下面Canvas/JPanel不显示在JFrame上?
MyCanvas类
public class MyCanvas extends javax.swing.JPanel{
MyCanvas()
{
super();
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D graphics2D=(Graphics2D)g;
graphics2D.drawRect(10, 10, 10, 10);
graphics2D.drawOval(0, 0, 100, 100);
}
}
MyFrame
public class Myframe extends javax.swing.JFrame {
public Myframe() {
initComponents();
@SuppressWarnings("unchecked")
+generatedcode by the designer
private void RectangleActionPerformed(java.awt.event.ActionEvent evt) {
}
private void SquareActionPerformed(java.awt.event.ActionEvent evt) {
}
private void CircleActionPerformed(java.awt.event.ActionEvent evt) {
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Myframe().setVisible(true);
}
});
}
public void run() {
new Myframe().setVisible(true);
}
// Variables declaration - do not modify
private javax.swing.JButton Circle;
private javax.swing.JButton Rectangle;
private javax.swing.JButton Square;
// End of variables declaration
}
我的主要计划
public static void main(String[] args) {
MyCanvas c = new MyCanvas();
Myframe f= new Myframe();//Works if used JFrame instead of MyFrame
f.add(c);
f.setVisible(true);
}
基本上我想创造,我想这可以触发事件和改变是什么画在画布上的按钮的GUI。我用空的jframe试了一下。将画布/面板添加到JFrame。有效。此外,我改变了我的面板/帆布,并重新框架。这也很好。但我无法这样做。
仍然不工作 –
@MuhammadTaha看到更新请 –
好吧,现在我已经根据你的指示编辑,我的画布显示自己。但是,由于initcomponents方法已被删除,它不显示我添加的按钮。我想按钮和画布应该显示自己。这是预期的结果。任何方式根据我的要求做到这一点? –