Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Nach dem ich das Panel ändere und mit revalidate neuaufbauen lasse, erscheinen die JButtons erst, wenn ich mit der Maus drüber fahre. Kann mir jemand erklären wie ich das Problem lösen kann?!
public class Main {
public Main() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new Hauptfenster();
}
}
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTabbedPane;
public class Hauptfenster extends JFrame {
public Hauptfenster(){
super("Test");
setSize(1000, 700); // groesse des fenster
setMinimumSize(getSize());
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(true);
this.setVisible(true); // macht alle fenster sichtbar
// Menü-Leiste
JMenuBar menu = new JMenuBar();
// Auswahl-Menü: Datei
JMenu file = new JMenu("Datei");
// Datei > Neu
JMenu _new = new JMenu("Neu");
// Datei > Neu > Ehrenscheibe
JMenuItem tab = new JMenuItem("Tab");
// Auswahlmenüs zur Leiste hinzufügen
menu.add(file);
_new.add(tab);
file.add(_new);
setJMenuBar(menu);
JTabbedPane tabPane = new JTabbedPane();
// tabbedPane zum Fenster hinzufügen
add(tabPane);
tab.addActionListener(new TabEvent(tabPane));
}
}
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
public class TabEvent implements ActionListener {
private JTabbedPane pane;
public TabEvent(JTabbedPane pane) {
// TODO Auto-generated constructor stub
this.pane = pane;
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
pane.addTab("asas", new TabPanel(pane));
}
}
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridBagLayout;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
public class TabPanel extends JPanel implements ActionListener {
private JPanel centerPanel = null;
private JTabbedPane tabPane = null;
public TabPanel(JTabbedPane tabPane) {
// TODO Auto-generated constructor stub
this.tabPane = tabPane;
setLayout(new BorderLayout());
// Liste links
JPanel listPanel = new JPanel(new BorderLayout());
JList list = new JList();
JScrollPane scroller = new JScrollPane(list, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroller.setPreferredSize(new Dimension(250, 0));
listPanel.add(list, BorderLayout.CENTER);
add(scroller, BorderLayout.WEST);
_setLayout(0);
}
private void _setLayout(int type) {
if(centerPanel != null){
centerPanel.removeAll();
centerPanel = null;
}
// Mitte des Tabs
if(type == 0){
centerPanel = new JPanel(new GridBagLayout());
JButton btn = new JButton("Nummer 1");
btn.addActionListener(this);
centerPanel.add(btn);
add(centerPanel);
}else{
centerPanel = new JPanel(new BorderLayout());
JButton btn1 = new JButton("Nummer 1");
JButton btn2 = new JButton("Nummer 2");
centerPanel.add(btn1, BorderLayout.CENTER);
centerPanel.add(btn2, BorderLayout.SOUTH);
add(centerPanel);
}
if(centerPanel != null){
centerPanel.revalidate();
centerPanel.repaint();
tabPane.revalidate();
}
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
_setLayout(1);
}
}