Archief - Tabs in Java

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Falconbe01

Legacy Member
Ik zou graag een soort van tab-layout in java maken.
Ik heb deze code al, maar om de 1 of andere reden wil dit niet werken. Zien jullie miss wat er scheelt ?

package miniproject;

import java.awt.BorderLayout;
import java.awt.GridLayout;

import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JTabbedPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

import com.sun.corba.se.spi.ior.MakeImmutable;

import Oefening2.test1;



public class mini extends JFrame {
private JTabbedPane tabbedPane;
public mini() {
super (new GridLayout (1,1));
JTabbedPane tabbedPane = new JTabbedPane();
// ImageIcon icon = createImageIcon ("D:\users\2930002\Desktop\java_icon.jpg");

JComponent panel1 = makeTextPanel("Panel #1");
tabbedPane.addTab("Tab 1",panel1,"klik hier");
tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);

JComponent panel2 = makeTextPanel("Panel #2");
tabbedPane.addTab("tab2",panel2,"klik hier bitch");
tabbedPane.setMnemonicAt(1, KeyEvent.VK_2);

tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
add(tabbedPane);
this.setSize (400,400);
this.setVisible(true);
}
private static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("mini-project");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Add content to the window.
frame.add(new mini(), BorderLayout.CENTER);

//Display the window.
frame.pack();
frame.setVisible(true);
}


public static void main(String[] args) {
mini c = new mini ();
}

}

NeverwinterX

Legacy Member
1) "wil dit niet werken" Wat is de fout?
2) gebruik de code tags
3) wat doet "makeTextPanel"
4) de code compileert hier alvast niet: JFrame heeft geen constructor waaraan je een layout kunt meegeven. Je moet een JPanel met een layout in de frame steken
5) er is geen addTab methode in JTabbedPane die een String,JComponent,String als parameters aanneemt

Kijk naar de api: Java Platform SE 6
Bekijk ook de swing tutorial: Trail: Graphical User Interfaces (The Java™ Tutorials)
Meer bepaald JTabbedPane: How to Use Tabbed Panes (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)

Edit:
Ben in een goeie bui vanwege een goed examen :D:
Heb de code her en der aangepast zodat het meer doet wat vermoedelijk de bedoeling is:

Code:
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.KeyEvent;

import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;

public class mini extends JPanel {
	private JTabbedPane tabbedPane;

	public mini() {
		super(new GridLayout(1, 1));
		JTabbedPane tabbedPane = new JTabbedPane();

		JComponent panel1 = this.makeTextPanel("Panel #1");
		tabbedPane.addTab("Tab 1", panel1);
		tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);

		JComponent panel2 = this.makeTextPanel("Panel #2");
		tabbedPane.addTab("tab2", panel2);
		tabbedPane.setMnemonicAt(1, KeyEvent.VK_2);

		tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
		this.add(tabbedPane);
	}

	private static void createAndShowGUI() {
		// Create and set up the window.
		JFrame frame = new JFrame("mini-project");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		// Add content to the window.
		frame.add(new mini(), BorderLayout.CENTER);

		// Display the window.
		frame.pack();
		frame.setSize(400, 400);
		frame.setVisible(true);
	}

	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				createAndShowGUI();
			}
		});
	}

	public JComponent makeTextPanel(String bla) {
		JPanel jp = new JPanel();
		jp.add(new JLabel(bla));
		return jp;
	}

}

edit: invokelater voor de muggezifters :p

kaketoe

Legacy Member
Een EventQueue.invokeLater (...) is trouwens ook niet verboden :P
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan