0

Hi all...

I have a JFrame, which contains a JTabbed Pane, which contains two JPanels.

The problem is that when I run the program, a completely grey frame shows up, and the contents only becomes visible when I click on the border of the frame.

Here is the code. Compile & run to see what I mean. I already tried repainting the contents of the frame in the main program, didn't work.

import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.JTabbedPane;

public class test{
	
	JFrame mainFrame;
	JTabbedPane JTP;
	JPanel panel1, panel2;
	JSlider JS;	
	
	public test(){
		
		mainFrame = new JFrame();
		
		panel1 = new JPanel();
		panel1.setBackground(Color.black);
		panel1.setForeground(Color.white);
				
		JS = new JSlider();
		JS.setForeground(Color.white);
		JS.setMinimum(0);
		JS.setMaximum(100);
		JS.setMinorTickSpacing(5);
		JS.setMajorTickSpacing(10);
				
		JS.setPaintTicks(true);
		JS.setPaintLabels(true);
		
		panel2 = new JPanel();
		panel2.setBackground(Color.black);
		panel2.setForeground(Color.white);
		panel2.setLayout(new BorderLayout());
		panel2.add(JS, BorderLayout.CENTER);
				
		JTP = new JTabbedPane();
		JTP.add("Tab1", panel1);
		JTP.add("Tab2", panel2);
		JTP.setForeground(Color.green);
		mainFrame.getContentPane().add(JTP);
		mainFrame.setVisible(true);
		mainFrame.setTitle("Test");
		mainFrame.setSize(400,400);
	}
	
	public static void main(String[] args){
		test T = new test();
		T.mainFrame.repaint();
		T.panel1.repaint();
		
	}
		
}

Any help would be much appreciated. :)

3
Contributors
5
Replies
6
Views
12 Years
Discussion Span
Last Post by server_crash
0

There was a few problems. I've got a working version below that you can look at. If you have an older version of java it may not run correctly. Now, you'll have to extend JFrame to get some of the methods I'm using, which I prefer to extend JFrame anyways.

import java.awt.*;
import javax.swing.*;

public class test extends JFrame{

	JTabbedPane JTP;
	JPanel panel1, panel2;
	JSlider JS;	
	
	public test(){
		
		panel1 = new JPanel();
		panel1.setBackground(Color.black);
		panel1.setForeground(Color.white);
				
		JS = new JSlider();
		JS.setForeground(Color.white);
		JS.setMinimum(0);
		JS.setMaximum(100);
		JS.setMinorTickSpacing(5);
		JS.setMajorTickSpacing(10);
				
		JS.setPaintTicks(true);
		JS.setPaintLabels(true);
		
		panel2 = new JPanel();
		panel2.setBackground(Color.black);
		panel2.setForeground(Color.white);
		panel2.setLayout(new BorderLayout());
		panel2.add(JS, BorderLayout.CENTER);
				
		JTP = new JTabbedPane();
		JTP.add("Tab1", panel1);
		JTP.add("Tab2", panel2);
		JTP.setForeground(Color.green);
		
		Container content = getContentPane();
		content.add(JTP);
		setContentPane(content);
		setTitle("Test");
		setSize(400,400);
		setVisible(true);
	}
	
	public static void main(String[] args){
		test T = new test();
		
	}
		
}
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.