我在主框架中创建了一个内部框架,并且我想从另一个框架中打开另一个内部框架。如何从netbeans中的另一个内部框架打开内部框架
我不知道该怎么做。有什么建议么?
我试过很多了几个不同的方式来打开另一个内部框架:
- 我用调用setVisible(true)方法,但它不工作。
- 我创建了mainFrame的对象,但没有得到正确的方法。
我搜索了它并搜索了堆栈溢出,但找不到任何答案。
我在主框架中创建了一个内部框架,并且我想从另一个框架中打开另一个内部框架。如何从netbeans中的另一个内部框架打开内部框架
我不知道该怎么做。有什么建议么?
我试过很多了几个不同的方式来打开另一个内部框架:
我搜索了它并搜索了堆栈溢出,但找不到任何答案。
好了,你可以开始使用Java教程How to Use Internal Frames
但一个可能的过程可能是这样的
JInternalFrame newFrame = JInternalFrame();
newFrame.setBounds(10, 10, 100, 100);
newFrame.setVisible(true);
getParent().add(newFame); // assuming our current class is a JInternalFrame on a JDeskTop
先生,我试过这段代码,但它没有奏效。我创建了一个内部框架。在它上面,我创建了一个按钮。还有一个内部框架。当我点击按钮时,我想打开另一个内部框架。点击按钮,我写了你告诉我的方法,但我没有工作。 – PradeepBhati 2012-08-14 09:23:51
给我们留下一些示例代码,包括你正在添加的容器 - 我怀疑你要么不使用JDesktopPane,要么使用LayoutManager – MadProgrammer 2012-08-14 09:52:47
不要忘记'pack()'。 :-) – 2012-08-14 14:16:17
你可以做这样的事情:
适应的 InternalFrameDemo.javapublic class InternalFrameDemo extends JFrame {
static int openFrameCount = 0;
static final int xOffset = 30, yOffset = 30;
JDesktopPane desktop;
public InternalFrameDemo() {
super("InternalFrameDemo");
final int inset = 50;
final Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setBounds(inset, inset, screenSize.width - inset * 2, screenSize.height - inset * 2);
// Set up the GUI.
desktop = new JDesktopPane(); // a specialized layered pane
createFrame(); // create first "window"
setContentPane(desktop);
}
protected void createFrame() {
final JInternalFrame frame = new JInternalFrame("Document #" + ++openFrameCount);
frame.setLocation(xOffset * openFrameCount, yOffset * openFrameCount);
frame.setSize(200, 100);
frame.setVisible(true);
frame.getContentPane().add(createButton());
desktop.add(frame);
try {
frame.setSelected(true);
} catch (final java.beans.PropertyVetoException e) {
}
}
private JButton createButton() {
return new JButton(new AbstractAction("New") {
@Override
public void actionPerformed(final ActionEvent e) {
createFrame();
}
});
}
private static void createAndShowGUI() {
JFrame.setDefaultLookAndFeelDecorated(true);
final InternalFrameDemo frame = new InternalFrameDemo();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public static void main(final String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
createAndShowGUI();
}
});
}
}
为了更快得到更好的帮助,请发布[SSCCE](http:// sscce.org/)。 – 2012-08-14 11:33:18