我正在研究具体功能的象征性衍生物。我有三节课。
fnc.java represnets如何看起来像衍生个体功能。例如:
public void der_cotg(Graphics g,int x, int y){
drawBroken_line(g,"-1","sin (x)",x+23,y); //putting pixels between x and y
g.setFont(new Font("Arial", Font.BOLD,18));//Graphics g
g.drawString("2", x+66, y+18);
}
Jmain.java 是JFrame表单,表示字段,我们可以看到衍生函数的vizualization。有两个标签
他们旁边的两个小组
和打开另一个JFrame choose.java 的按钮,您可以在其中选择功能。它由Jpanel和按钮(代表具体功能)组成。如果按下其中一个按钮,具体功能将显示在 choose.java 的面板上。
我想从 choose.java 获取图形并设置 Jmain.java 的Panel。 我知道如何获取和设置文本字段,但我还没有找到是否可以使用Panels。
答案 0 :(得分:1)
如this answer所示,您可以创建BufferedImage
内容的JPanel
。该示例将PanelOne
(JPanel
)传递给另一个JPanel
(PanelTwo
)的方法,这是PanelTwo
中的方法从传递给它的BufferedImage
创建PanelOne
。
BufferedImage bi;
....
private void setImage(PanelOne panel) {
Dimension d = panel.getPreferredSize();
int w = (int)d.getWidth();
int h =(int)d.getHeight();
bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bi.createGraphics();
panel.paint(g);
g.dispose();
}
....
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(bi, 0, 0, 250, 250, 0, 0, 250, 250, this);
}
这是结果。 PanelOne
在左侧,并将自己传递给右侧的PanelTwo