Java 如何打开内部框架
我在这个主框架中打开一个新的内部框架,我有两个类Java 如何打开内部框架,java,swing,user-interface,frame,mdi,Java,Swing,User Interface,Frame,Mdi,我在这个主框架中打开一个新的内部框架,我有两个类 DisplayInternalFrame aDisplay = new DisplayInternalFrame(name, surname); desktop.add(aDisplay); aDisplay.setMaximum(true); aDisplay.show() 我有一个桌面窗格及其名称desktop,这是我的主框架,应用程序运行时内部框架正在加载 现在我的第二个类是internalframe,它有
DisplayInternalFrame aDisplay = new DisplayInternalFrame(name, surname);
desktop.add(aDisplay);
aDisplay.setMaximum(true);
aDisplay.show()
我有一个桌面窗格及其名称desktop,这是我的主框架,应用程序运行时内部框架正在加载
现在我的第二个类是internalframe,它有一个表,当人们推一个表项时,我想打开一个新的内部框架,我的表名是errorTable
private void errorTableMouseClicked(java.awt.event.MouseEvent evt) {
errorInternalFrame acceptFrame = new errorInternalFrame();
desktop.add(acceptFrame);
桌面在类1上,因此我无法访问桌面,因为我现在处于internalframe事件中
基本上,当人们把桌子上的一个项目推到内部框架上时,打开一个新的内部框架,或者类似的东西
“桌面位于类1上,因此我无法访问桌面,因为我现在处于internalframe事件中,”
您可以做的是创建一个接口
,方法是addToDesktop
public interface AddableDesktop {
public void addToDesktop();
}
然后在你的桌面类中,实现它
public class Main extends JFrame implements AddableDesktop {
private JDesktopPane desktop;
@Override
public void addToDesktop() {
errorInternalFrame acceptFrame = new errorInternalFrame();
desktop.add(acceptFrame);
acceptFrame.setVisible(true);
}
}
您还需要将Main
实例(它是AddableDesktop
的实例)传递到DisplayInternalFrame
。然后可以调用addToDesktop
方法
public class DisplayInternalFrame extends JInternalFrame {
private AddableDesktop addableDesktop;
public DisplayInternalFrame(String name, String surname, AddableDesktop ad) {
this.addableDesktop = ad;
}
...
private void errorTableMouseClicked(java.awt.event.MouseEvent evt) {
addableDesktop.addToDesktop();
}
}
在Main
类中创建DisplayInternalFrame
时,将Main
实例传递给构造函数
DisplayInternalFrame aDisplay =
new DisplayInternalFrame(name, surname, Main.this);
这可能不是您想要的确切设置,但它显示了如何提供从一个类到另一个类的功能 谢谢你的帮助,我将尝试使用一个界面。