Note that there are some explanatory texts on larger screens.

plurals
  1. POJava tabbed panes within internal frame
    primarykey
    data
    text
    <p>I am trying to get an internal frame to contain tabbed panes. However, my code does not seem to be loading the panes into the internal frame. I have my code in the java files, called InternalFrame.java and TabbedPaneSample.java. The code for both files is included below. Can anyone show me how to fix the code below so that it loads the tabbed panes when I run InternalFrame.java?</p> <p>Here is my code:</p> <p>The code for InternalFrame.java is:</p> <pre><code>package test; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Panel; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton; import javax.swing.JDesktopPane; import javax.swing.JFrame; import javax.swing.JInternalFrame; import javax.swing.JLayeredPane; public class InternalFrame extends JFrame { JButton openButton; JLayeredPane desktop; JInternalFrame internalFrame; TabbedPaneSample myTabbedPaneSample = new TabbedPaneSample(); public InternalFrame() { super("Click button to open internal frame with two panels."); setSize(500, 400); openButton = new JButton("Open"); Panel p = new Panel(); p.add(openButton); add(p, BorderLayout.SOUTH); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); openButton.addActionListener(new OpenListener()); desktop = new JDesktopPane(); desktop.setOpaque(true); add(desktop, BorderLayout.CENTER); } class OpenListener implements ActionListener { public void actionPerformed(ActionEvent e) { if ((internalFrame == null) || (internalFrame.isClosed())) { internalFrame = new JInternalFrame("Internal Frame", true, true, true, true); internalFrame.setBounds(50, 50, 200, 100); internalFrame.add(myTabbedPaneSample, BorderLayout.CENTER); internalFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); internalFrame.pack(); internalFrame.setMinimumSize(new Dimension(300, 300)); desktop.add(internalFrame, new Integer(1)); internalFrame.setVisible(true); } } } public static void main(String args[]) { InternalFrame myInternalFrame = new InternalFrame(); myInternalFrame.setVisible(true); } } </code></pre> <p>And the code for TabbedPaneSample.java is:</p> <pre><code>package test; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTabbedPane; public class TabbedPaneSample extends JTabbedPane { private JTabbedPane tabbedPane = new JTabbedPane(); private ImageIcon closeImage = new ImageIcon("C:/test/shipIcon.gif"); private Dimension closeButtonSize; private int tabCounter = 0; public TabbedPaneSample() { closeButtonSize = new Dimension(closeImage.getIconWidth() + 2, closeImage.getIconHeight() + 2); } public void add() { final JPanel content = new JPanel(); JPanel tab = new JPanel(); tab.setOpaque(false); JLabel tabLabel = new JLabel("Tab " + (++tabCounter)); JButton tabCloseButton = new JButton(closeImage); tabCloseButton.setPreferredSize(closeButtonSize); tabCloseButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int closeTabNumber = tabbedPane.indexOfComponent(content); tabbedPane.removeTabAt(closeTabNumber); } }); tab.add(tabLabel, BorderLayout.WEST); tab.add(tabCloseButton, BorderLayout.EAST); this.addTab(null, content); this.setTabComponentAt(this.getTabCount() - 1, tab); } public static void main(String[] args) { TabbedPaneSample main = new TabbedPaneSample(); main.add(); main.add(); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload