gpt4 book ai didi

java - 在另一个类函数中访问动态组件(即新标签)?

转载 作者:行者123 更新时间:2023-11-30 05:00:20 25 4
gpt4 key购买 nike

我目前正在开发 Swing Applet,并且在其他类函数中引用我的自定义 AWT Canvas 组件(非常简单的扩展类)时遇到问题,例如通常使用 Netbean (7.0) 创建的任何其他组件(即按钮)的设计师。

我在此处添加了我的自定义 Canvas 元素,我确信这将是合适的位置(特别是在所有其他生成的组件刚刚在同一区域中创建之后)

public void init() {
try {
java.awt.EventQueue.invokeAndWait(new Runnable() {
public void run() {
initComponents();

CustomCanvas myCan = new CustomCanvas();
myCan.setBounds(100, 100, 200, 200);
getContentPane().add(myCan);
...

但是,与生成的组件不同,我无法通过名称访问它们,并且似乎也无法通过其他方式(this.myCan)访问它们。我已经设置了一个示例函数,它将处理 Swing 表单上的(生成的)按钮,以操作先前实例化的 myCan 组件:

private void btnManipCanvasActionPerformed(java.awt.event.ActionEvent evt) {
//Essentially Was wanting to call something here such as myCan.getGraphics().setRect...
}

您知道访问 myCan 的方法吗?我是否应该将组件的自定义初始化放在不同的区域中,以便可以公开访问它们?

最佳答案

只需将 Canvas 设置为实例变量,就像(我猜)Netbeans 设计器创建的所有其他组件一样:

private CustomCanvas myCan;

public void init() {
try {
java.awt.EventQueue.invokeAndWait(new Runnable() {
public void run() {
initComponents();

myCan = new CustomCanvas();
myCan.setBounds(100, 100, 200, 200);
getContentPane().add(myCan);
// ...

关于java - 在另一个类函数中访问动态组件(即新标签)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6971473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com