我有一个主JFrame,它包含一个JPanel及其上的所有组件。我在我的主Jframe上绘制了一个图表,我使用了getGraphics()方法在JPanel上绘制形状。我想将其转换为另一个图表,以便新图表显示在新的Jframe上,但我无法绘制任何形状在新创建的框架的面板上。(我也尝试使用相同的getGraphics()方法绘制,就像我在主Jframe中使用的那样)。
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Line2D;
import javax.swing.JButton;
import javax.swing.JPanel;
public class Transformation extends javax.swing.JFrame {
private JPanel myPanel;
public Transformation() {
this.setSize(500, 500);
this.setVisible(true);
myPanel = new JPanel(new FlowLayout());
myPanel.add(new JButton("Hello"));
this.getContentPane().add(myPanel);
Graphics2D g = (Graphics2D) myPanel.getGraphics();
g.draw(new Line2D.Double(20, 50, 100, 200) );
}
}
在主Jframe中,我在Jbutton的动作监听器中调用了以下行。
转换tfm = new Transformation();