Then i'm refering from "How to Use Tabbed Panes" to create a new project based by JTabbedPane component.
It's enough to use "setComponentOrientation" method to change orentation of JTabbedPane.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.tommyalf.java.tabbedpane; | |
import javax.swing.*; | |
import java.awt.*; | |
import java.awt.event.KeyEvent; | |
/** | |
* Created by IntelliJ IDEA. | |
* User: tommyalf | |
* Date: 27-nov-2010 | |
* Time: 12.38.22 | |
* To change this template use File | Settings | File Templates. | |
*/ | |
public class TabbedPane extends JPanel { | |
public TabbedPane() { | |
super(new GridLayout(1, 1)); | |
JTabbedPane tabbedPane = new JTabbedPane(); | |
ImageIcon icon = createImageIcon("images/middle.gif"); | |
JComponent panel1 = makeTextPanel("Panel #1"); | |
tabbedPane.addTab("Tab 1", icon, panel1, | |
"Does nothing"); | |
tabbedPane.setMnemonicAt(0, KeyEvent.VK_1); | |
JComponent panel2 = makeTextPanel("Panel #2"); | |
tabbedPane.addTab("Tab 2", icon, panel2, | |
"Does twice as much nothing"); | |
tabbedPane.setMnemonicAt(1, KeyEvent.VK_2); | |
JComponent panel3 = makeTextPanel("Panel #3"); | |
tabbedPane.addTab("Tab 3", icon, panel3, | |
"Still does nothing"); | |
tabbedPane.setMnemonicAt(2, KeyEvent.VK_3); | |
JComponent panel4 = makeTextPanel( | |
"Panel #4 (has a preferred size of 410 x 50)."); | |
panel4.setPreferredSize(new Dimension(410, 50)); | |
tabbedPane.addTab("Tab 4", icon, panel4, | |
"Does nothing at all"); | |
tabbedPane.setMnemonicAt(3, KeyEvent.VK_4); | |
tabbedPane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); // Change Orentation | |
//Add the tabbed pane to this panel. | |
add(tabbedPane); | |
//The following line enables to use scrolling tabs. | |
tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); | |
} | |
protected JComponent makeTextPanel(String text) { | |
JPanel panel = new JPanel(false); | |
JLabel filler = new JLabel(text); | |
filler.setHorizontalAlignment(JLabel.CENTER); | |
panel.setLayout(new GridLayout(1, 1)); | |
panel.add(filler); | |
return panel; | |
} | |
/** Returns an ImageIcon, or null if the path was invalid. */ | |
protected static ImageIcon createImageIcon(String path) { | |
java.net.URL imgURL = TabbedPane.class.getResource(path); | |
if (imgURL != null) { | |
return new ImageIcon(imgURL); | |
} else { | |
System.err.println("Couldn't find file: " + path); | |
return null; | |
} | |
} | |
/** | |
* Create the GUI and show it. For thread safety, | |
* this method should be invoked from | |
* the event dispatch thread. | |
*/ | |
private static void createAndShowGUI() { | |
//Create and set up the window. | |
JFrame frame = new JFrame("TabbedPaneDemo"); | |
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | |
//Add content to the window. | |
frame.add(new TabbedPane(), BorderLayout.CENTER); | |
//Display the window. | |
frame.pack(); | |
frame.setVisible(true); | |
} | |
public static void main(String[] args) { | |
//Schedule a job for the event dispatch thread: | |
//creating and showing this application's GUI. | |
SwingUtilities.invokeLater(new Runnable() { | |
public void run() { | |
//Turn off metal's use of bold fonts | |
UIManager.put("swing.boldMetal", Boolean.FALSE); | |
createAndShowGUI(); | |
} | |
}); | |
} | |
} |
Nessun commento:
Posta un commento