java - 我可以从一个 jframe 的面板获取图形到另一个 jframe 吗? (网 bean )

标签 java swing graphics jpanel paint

我正在研究具体函数的符号导数。我有三节课。

fnc.java 代表网络如何看起来像导数单个函数。例如:

 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形式,代表字段,在这里我们可以看到导数函数的可视化。有两个标签

  • f(x) =
  • g(x) = ,

旁边有两个面板

和打开另一个 JFrame choose.java 的按钮,您可以在其中选择功能。它由 Jpanel 和按钮(代表具体功能)组成,如果您按下这些按钮之一,具体功能将显示在 choose.java 的面板上。

我想从 choose.java 获取 Graphics 并设置 Jmain.java 的面板。 我知道如何获取和设置文本字段,但我还没有发现面板是否可以实现。

最佳答案

this answer中所示,您可以创建 JPanel 内容的 BufferedImage。该示例将 PanelOne(这是一个 JPanel)传递给另一个 JPanel (PanelTwo) 的方法,这是 PanelTwo 中的方法,它根据传递给它的 PanelOne 创建一个 BufferedImage

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

enter image description here

关于java - 我可以从一个 jframe 的面板获取图形到另一个 jframe 吗? (网 bean ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21668016/

相关文章:

java - 在没有继承的情况下绘制到 JPanel

java - Spring Bean 在应用程序重新启动后仍然存在吗?

iphone - 如何改进 2D 横向卷轴 iPhone 游戏的 "smoothness"?

asp.net - 调整 gif 图像大小会导致质量下降

java - java中如何将通用(Char或Integer)变量转换为int

Java 图形2D;切换我拥有的形状对象的绘制顺序?

java - 从单链表扩展创建双链表 - 获取空指针

java - 特殊的 GUI 问题

html - source-over alpha 混合效果不佳(HTML5 Canvas )

java - Android 中的智能卡验证 pin apdu 命令问题