Archief - [PROG]java Tabs dynamisch toevoegen

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.

jodeman

Legacy Member
hallo,

zit er nu al sinds gisteren op te sukkelen en het lukt gvd niet.

Ik declareer tabbedPane in createAndShowGUI en als ik daarna op de "open" knop in mijn menu klik krijg ik een nullPointerException :confused:. Er staat dus al een tab voor te testen in men tabbedPane, ik voer dat uit en dan zegt em dat er geen tabbedpane is. Merci voor de hulp.

Code:
package bs;

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

public class View implements ActionListener {
    JTextArea output;
    JScrollPane scrollPane;
    JTabbedPane tabbedPane;
    JFrame frame;
            
    public JMenuBar createMenuBar() {
        JMenuBar menuBar;
        JMenu menu;

        menuBar = new JMenuBar();

        menu = new JMenu("A Menu");
        menu.getAccessibleContext().setAccessibleDescription(
                "The only menu in this program that has menu items");
        menuBar.add(menu);
        
        JMenuItem menuItem = new JMenuItem("Open");
        menuItem.setActionCommand("open");
        menuItem.addActionListener(this);
        menu.add(menuItem);
        
        menuItem = new JMenuItem("Quit");
        menuItem.setActionCommand("quit");
        menuItem.addActionListener(this);
        menu.add(menuItem);

        return menuBar;
    }

    public void createAndShowGUI() {
        JFrame.setDefaultLookAndFeelDecorated(true);
        frame = new JFrame("FAT12 ImageReader");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        View demo = new View();
        frame.setJMenuBar(demo.createMenuBar());
        
        tabbedPane = new JTabbedPane();
        frame.add(tabbedPane);
        
        tabbedPane.addTab("test",null);
        
        frame.setSize(450, 260);
        frame.setVisible(true);
    }

	public void actionPerformed(ActionEvent e) {
		if ("open".equals(e.getActionCommand())) {
			open();
		} else if ("quit".equals(e.getActionCommand())) {
			exit();
		}
	}

	private void open() {
		tabbedPane.addTab("test",null);
	}

	private void exit() {
		System.exit(0);
	}
}

.Acku.

Legacy Member
Code:
    public void createAndShowGUI() {
        JFrame.setDefaultLookAndFeelDecorated(true);
        frame = new JFrame("FAT12 ImageReader");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setJMenuBar(createMenuBar());
        
        tabbedPane = new JTabbedPane();
        frame.add(tabbedPane);
        
        tabbedPane.addTab("test",null);
        
        frame.setSize(450, 260);
        frame.setVisible(true);
    }

gebruik dit. Je maakt in uw View object een nieuw View object aan, heel vreemd. Dat resulteert in het feit dat je de klassevars in uw nieuw object initeliaseert en niet in dat die de JFrame wilt gebruiken. Zodoende, nullpointers.

jodeman

Legacy Member
Merci voor de reply, was idd dom. Heb alles in de constructor gezet en dan laten overerven van JFrame en werkt perfect.
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