Java 在Initcomponents()中使用函数

Java 在Initcomponents()中使用函数,java,swing,user-interface,Java,Swing,User Interface,我正在用Java制作一个JFrame应用程序,我正在使用应用程序设计器在我的JFrame中插入组件。在Jtextarea中,我想显示一些文本,但该文本是由我在类中编写的函数返回的。所以我想我可以在initcomponents()中调用JTextarea值中的函数,它管理gui组件的代码。但无法修改初始组件方法(以灰色突出显示)。有办法做到这一点吗 public String yes() { return "voila"; } 有没有办法做到这一点 private void initco

我正在用Java制作一个JFrame应用程序,我正在使用应用程序设计器在我的JFrame中插入组件。在Jtextarea中,我想显示一些文本,但该文本是由我在类中编写的函数返回的。所以我想我可以在initcomponents()中调用JTextarea值中的函数,它管理gui组件的代码。但无法修改初始组件方法(以灰色突出显示)。有办法做到这一点吗

public String yes() {
    return "voila";
}
有没有办法做到这一点

private void initcomponent() {
    jTextArea1.setText("some text" + yes());
}
当您在GUI编辑器中创建UI时,IDE将重新生成
initComponents()
方法。该方法是“受保护”的,以防止此重新生成覆盖用户编写的代码

initComponents方法是只读的,以保持对IDE的完全控制。您可以在初始化组件之后立即在构造函数中添加您的组件

public class NewJFrame extends javax.swing.JFrame {

public NewJFrame() {
    initComponents();
    myInitComponents();
}

public void myInitComponents() 
{
   jTextArea1.setText("some text"+yes());
}

public String yes(){
    return "voila";
}
当您在GUI编辑器中创建UI时,IDE将重新生成
initComponents()
方法。该方法是“受保护”的,以防止此重新生成覆盖用户编写的代码

initComponents方法是只读的,以保持对IDE的完全控制。您可以在初始化组件之后立即在构造函数中添加您的组件

public class NewJFrame extends javax.swing.JFrame {

public NewJFrame() {
    initComponents();
    myInitComponents();
}

public void myInitComponents() 
{
   jTextArea1.setText("some text"+yes());
}

public String yes(){
    return "voila";
}
initComponents()
方法是由IDE生成的,每次构建项目时都会重新生成该方法(从单独的xml)。您必须“告诉”IDE您正在添加自定义代码

  • 转到GUI编辑器,单击
    JTextArea
    组件

  • 选择
    属性
    (在调色板下的侧栏中),查找
    文本
    属性, 单击省略号(带三个点的按钮)

  • 从弹出的对话框中选择自定义代码,键入返回所需字符串的代码

IDE会生成
initComponents()
方法,每次构建项目时都会重新生成该方法(从单独的xml)。您必须“告诉”IDE您正在添加自定义代码

  • 转到GUI编辑器,单击
    JTextArea
    组件

  • 选择
    属性
    (在调色板下的侧栏中),查找
    文本
    属性, 单击省略号(带三个点的按钮)

  • 从弹出的对话框中选择自定义代码,键入返回所需字符串的代码


但是我的所有组件都在initcomponents()中,我如何使用另一个函数访问它们?您必须从initcomponents()中删除您的组件,然后将它们放置在myInitComponents()中好的,我知道了。但这是否意味着我必须不断删除initcomponent()中生成的内容?如果我在设计器中添加新组件,每次都会在initcomponent中生成代码…@Barbell您不必删除initcomponent()生成的内容,只需删除您添加的内容,即删除您添加的所有代码,但不删除生成的代码NetBeans@Barbell您的代码放在myInitComponents()中您不必在initializeComponents()中触摸IDE生成的组件,但我的所有组件都在initcomponents()中。那么,我如何使用其他函数访问它们?您必须从initcomponents()中删除您的组件,然后将它们放在myInitComponents()中。好的,我明白了。但这是否意味着我必须不断删除initcomponent()中生成的内容?如果我在设计器中添加新组件,每次都会在initcomponent中生成代码…@Barbell您不必删除initcomponent()生成的内容,只需删除您添加的内容,即删除您添加的所有代码,但不删除生成的代码NetBeans@Barbell您的代码放在myInitComponents()中您不必在initializeComponents()中触摸IDE生成的IDE,您使用的IDE是什么?有些IDE不允许您编辑初始化GUI的方法,但有些IDE允许您编辑。我使用NetBeans您只想编辑组件的初始文本,还是想做更多?我生成随机字符串,我想使用我编写的方法在y文本区域中插入。请参阅下面的答案您使用的IDE是什么?有些IDE不允许您编辑初始化GUI的方法,但有些IDE允许您编辑。我使用NetBeans您只想编辑组件的初始文本,还是想做更多?我生成随机字符串,我想使用我编写的方法在y文本区域中插入。见下面我的答案