Hello folks,

I am trying to add a JFrame object into JTabbedPane, but I am getting a java.lang.IllegalArgumentException. Here's my code snipt.

// other codes...
JTabbedPane tabs = new JTabbedPane();
tabs.addTab("Flight Information",flightInfoPane);  <-------------- line 28
// other codes...
private FlightInfoPane flightInfoPane = new FlightInfoPane();

Here I have flightInfoPane class's declaration...

class FlightInfoPane extends JFrame {
        public FlightInfoPane () {
 // rest of the class ....

This is the error that I am getting. I am not sure if this operation is allowed.

F:\DCTM_WORK>java FlightReservationDesktop.Reservation
Exception in thread "main" java.lang.IllegalArgumentException: adding a window to a container
        at java.awt.Container.addImpl(Unknown Source)
        at javax.swing.JTabbedPane.insertTab(Unknown Source)
        at javax.swing.JTabbedPane.addTab(Unknown Source)
        at FlightReservationDesktop.Reservation.<init>(Reservation.java:28)
        at FlightReservationDesktop.Reservation.main(Reservation.java:35)

please advise...


10 Years
Discussion Span
Last Post by test.tracker

I agree with Masijade, and I think you could probably just change the JFrame inheritance to JPanel, well depending on your actual coding hehe Anyway, what I wanted to recommend is NetBeans. It’s a very innovate IDE when one is dealing with GUI applications :icon_cool: You’d just create a new Java project and create a new GUI form; then you can drag and drop components just like in Visual Basic, but since it's Java it's better :icon_mrgreen: You certainly don’t have to code within NetBeans; just copy the automatically generated GUI code to the IDE that you’re using.


you can not add jrame into jtabbedpane...but you can add jtabbedpane into jframe.
create jpanels and add them into addTab().

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.