Java 在JFrame中跨多个JPanel的抽绳

Java 在JFrame中跨多个JPanel的抽绳,java,swing,jframe,jpanel,drawstring,Java,Swing,Jframe,Jpanel,Drawstring,我在someFrame中实例化了somePanel1、somePanel2和somePanel3 如果我在somePanel表单中使用drawString,如何使somePanel1、somePanel2和somePanel3中的输出不同 例如g.drawString(“X”,X,y)在所有三个somePanels中放置一个X。如何获得: somepanel 1输出X somePanel2输出Y,以及 somePanel3输出Z 来自您的评论SomePanel是自动生成的。您可以简单地添加一个

我在
someFrame
中实例化了
somePanel1
somePanel2
somePanel3

如果我在
somePanel
表单中使用
drawString
,如何使
somePanel1
somePanel2
somePanel3
中的输出不同

例如
g.drawString(“X”,X,y)
在所有三个
somePanel
s中放置一个
X
。如何获得:

  • somepanel 1
    输出
    X
  • somePanel2
    输出
    Y
    ,以及
  • somePanel3
    输出
    Z

来自您的评论
SomePanel
是自动生成的。您可以简单地添加一个setter方法以允许更改消息:

class SomePanel extends JPanel {

   // message to be used in drawString
   private String message;

  public void setMessage(String message) {
      this.message = message;
  }
  ...
}
然后使用

somePanel1.setMessage("X");
...

这就是我所拥有的。我想我真正想问的是如何“实例化传递
X
Y
Z
”?很抱歉,我重复了这一点,但是somePanel1是在someFrame表单中自动创建的<代码>专用主somePanel somePanel 1SomePanel 1=newsomepanel(“X”)在someFrame中,我得到一个找不到符号错误,我的意思是
private Main.somePanel somePanel 1
somePanel
放置在
someFrame
中三次,因此
someFrame
自动生成
somePanel1
somePanel2
somePanel3
。如果我在
somePanel1.
中键入
someFrame
source,我得到的唯一弹出选项是
new
。我建议在这里手工编码。这不仅可以让您更自由地添加构造函数参数,还可以让您更熟悉代码本身:)