这更像是打包/导入测试。我们将从 .../javaf/test.java 的基本文件夹开始
我的目标是创建子类别并创建一个带有按钮的类,当我需要按钮时可以将其导入到 test.java 中。我觉得我做得对,我知道按钮现在没有做任何事情,但我只想让整个事情正常工作并随后扩展代码。所以这里是 - 这是 test.java
import paket.*; // importing classes from subcategory paket!
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class test {
public test() {
JFrame myFrame;
JPanel myPanel;
myFrame = new JFrame("Hello FramWorld");
myPanel = new JPanel();
// Here I want to add the object created in paket/myButts.java
// The problem is how to make these two lines work.
myButts myButton = new myButts();
myPanel.add(myButton);
myFrame.setVisible(true);
myFrame.getContentPane().add(myPanel, BorderLayout.CENTER);
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.pack();
}
public static void main(String args[]) {
new test();
}
}
<小时/>
这是我的.../javaf/paket/myButts.java
package paket; // Here is the package function (ought to work like a link)
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
// This class should only create a button.
public class myButts {
public myButts() {
JButton myButt = new JButton();
}
}
<小时/>
我编译了 myButts.java,没有错误。但后来我编译 test.java 并给出了以下错误:
test.java:19: 找不到符号 符号:方法add(paket.myButts) 位置:类 javax.swing.JPanel myPanel.add(myButton);
感谢您的阅读, Z
最佳答案
我想你想要:
public class myButts extends JButton {
}
如果要将类的实例直接添加到 Swing 控件,则它必须扩展 Swing 或 AWT 类型(在本例中为 JButton)。
之前,您只是在构造函数中创建了一个本地 JButton,它在其他地方未使用且无法访问。
请注意,最好尝试遵循 Java style guide ,特别是naming conventions 。建议类别混合大小写,例如我的按钮。
关于Java 包 - 创建一个按钮并在需要时导入一个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2611565/