permaculture playing cards*
The moose likes Swing / AWT / SWT and the fly likes labeled tabs across the top of a window Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "labeled tabs across the top of a window" Watch "labeled tabs across the top of a window" New topic
Author

labeled tabs across the top of a window

Matthew Helling
Greenhorn

Joined: Mar 18, 2004
Posts: 17
I can't seem to find any documentation on how to do this. Can anyone point me in the right direction? As my program gets enhancements, I'd like to have multiple tabs for different sections of the program.
thanks in advance for any tips
Matt
Eddie Vanda
Ranch Hand

Joined: Mar 18, 2003
Posts: 281
Check out JTabbedPane
[ March 24, 2004: Message edited by: Eddie Vanda ]

The nice thing about Standards is that there are so many to choose from!
Purvi Pandya
Greenhorn

Joined: Feb 11, 2004
Posts: 7
Hi
Below code of JTabbedPane. It might be helpful to u.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.plaf.metal.*;
public class ColorTabbedPaneExample extends JFrame {
String[] titles = {"blue","cyan","green","yellow",
"orange","pink","red"};
Color[] colors = {Color.blue, Color.cyan, Color.green, Color.yellow,
Color.orange,Color.pink, Color.red };
JTabbedPane tabbedPane;
public ColorTabbedPaneExample() {
super("ColorTabbedPaneExample (Metal)");
UIManager.put("TabbedPane.selected", colors[0]);
tabbedPane = new JTabbedPane() {
public void updateUI(){
setUI(new ColoredTabbedPaneUI());
}
};
for (int i=0;i<titles.length;i++) {
tabbedPane.addTab(titles[i], createPane (titles[i], colors[i]));
tabbedPane.setBackgroundAt(i, colors[i].darker());
}
tabbedPane.setSelectedIndex(0);
tabbedPane.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
int i = tabbedPane.getSelectedIndex();
((ColoredTabbedPaneUI)tabbedPane.getUI()).setSelectedTabBackground(colors[i]);
tabbedPane.revalidate();
tabbedPane.repaint();
}
});
getContentPane().add(tabbedPane);
}
JPanel createPane(String title, Color color) {
JPanel panel = new JPanel();
panel.setBackground(color);
JLabel label = new JLabel(title);
label.setOpaque(true);
label.setBackground(Color.white);
panel.add(label);
return panel;
}
class ColoredTabbedPaneUI extends MetalTabbedPaneUI {
public void setSelectedTabBackground(Color color) {
selectColor = color;
}
protected void paintFocusIndicator(Graphics g, int tabPlacement,
Rectangle[] rects, int tabIndex,
Rectangle iconRect, Rectangle textRect,
boolean isSelected) {
}
}
public static void main(String[] args) {
JFrame frame = new ColorTabbedPaneExample();
frame.addWindowListener( new WindowAdapter() {
public void windowClosing( WindowEvent e ) {
System.exit(0);
}
});
frame.setSize( 360, 100 );
frame.setVisible(true);
}
}
bye,
Purvi Pandya
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: labeled tabs across the top of a window