Java swing java.lang.IllegalStateException



首先,我只在学校环境中编程6-7个月,所以这可能是一个愚蠢的问题。

在课堂上,我们刚刚了解到AWT和Swing。因此,当我阅读它的时候,我决定测试一些事情,并在几个月的时间内将一些内容纳入我的计划中。

所以我要做的是制作一个GUI,如果您按下按钮,您可以在一个名为voegtoe的班级上添加参数(Trein trein(。

现在,我尝试添加一个grouplayout,但是在收到这样的错误之后,我真的不知道从哪里开始或做错了什么。

错误:

java.lang.illegalstateException: javax.swing.jbutton [,0,0,0x0,无效,AlignmentX = 0.0,Alignmenty = 0.5,border = javax.swing.plaf.bordoruiresource $ comporduireSource $ comporduireResource@7a3cdf,7a3cdf,flags = 296,flags = 296,最大值defaulticon =,disabledicon =,disabledsectectedicon =,margin = javax.swing.plaf.insetsuiresource [top = 2,left = 14,left = 14,bottom = 2,右= 14],paintborder = true,paintfocus = truefocus = true,prasteDicon =,plastoverEnabled = true = trure = true = true = true,loldovericon =,RolloverSelectedIcon =,selectedicon =,text = annuleer,defaultcapable = true] 不连接到水平组

代码

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.GroupLayout.*;
/**
 * Voeg loco of wagen toe aan het systeem
 *
 * @author Pieter-Jan Casteels
 * @version 2017-04-27
 */
public class VoegToe
{
    private Trein trein;
    private JFrame frame;
    /**
     * Constructor voor objects van class VoegToe
     */
    public VoegToe(Trein newTrein)
    {
        setTrein(newTrein);
        //makePopUp();
    }
    /**
     * Setter voor de Trein classe
     * 
     * @param Trein de huidige Trein
     */
    private void setTrein(Trein newTrein)
    {
        trein = newTrein;
        //makePopUp();
    }
    public void makePopUp()
    {
        // DropDown voor het selecteren van wagen of Loco
        String[] comboFill = {"Wagen", "Loco"};
        JComboBox locoWagen = new JComboBox(comboFill);
        JTextField wagenNummer = new JTextField();
        JTextField lengte = new JTextField();
        JTextField massa = new JTextField();
        JTextField lading = new JTextField();
        JTextField remming = new JTextField();
        JTextField handRem = new JTextField();
        JButton voegToeButton = new JButton("Voeg Toe");
        JButton resetButton = new JButton("Reset");
        JButton annButton = new JButton("Annuleer");
        frame = new JFrame("Voeg Wagen of Loco toe");
        Container frameContent = frame.getContentPane();
        GroupLayout layout = new GroupLayout(frameContent);
        frameContent.setLayout(layout);
        layout.setVerticalGroup(layout.createSequentialGroup()
            .addGroup(layout.createParallelGroup()
                .addComponent(locoWagen)
                .addComponent(wagenNummer)
                .addComponent(lengte))
            .addGroup(layout.createParallelGroup()
                .addComponent(massa)
                .addComponent(lading))
            .addGroup(layout.createParallelGroup()
                .addComponent(remming)
                .addComponent(handRem))
            .addGroup(layout.createParallelGroup()
                .addComponent(voegToeButton)
                .addComponent(resetButton)
                .addComponent(annButton))
        );
        frame.pack();
        frame.setVisible(true);
    }
    /**
     * Voeg een wagen toe zonder schroefrem
     * 
     * @param long de nummer van de wagen
     * @param intiger lengte van de wagen in CM
     * @param intiger de massa van de wagen in KG
     * @param intiger de massa van de lading in KG
     * @param intiger de remming van de wagen
     */
    public void addWagen(long newWagenNummer, int newLengte, int newMassa, int newLading, int newRemming)
    {
        Wagen wagen = new Wagen(newWagenNummer, newLengte, newMassa, newLading, newRemming);
        trein.voegWagenToe(wagen);
    }
    /**
     * Voeg een wagen toe met schroefrem
     * 
     * @param long de nummer van de wagen
     * @param intiger lengte van de wagen in CM
     * @param intiger de massa van de wagen in KG
     * @param intiger de massa van de lading in KG
     * @param intiger de remming van de wagen
     * @param intiger remming van schroefrem
     */
    public void addWagen(long newWagenNummer, int newLengte, int newMassa, int newLading, int newRemming, int newRemmingSchroefrem)
    {
        Wagen wagen = new Wagen(newWagenNummer, newLengte, newMassa, newLading, newRemming, newRemmingSchroefrem);
        trein.voegWagenToe(wagen);
    }
    /**
     * Voeg een Locomotief toe
     * 
     * @param long de nummer van de loco
     * @param intiger lengte van de loco in CM
     * @param intiger de massa van de loco in KG
     * @param intiger de remming van de loco
     */
    public void addLoco(long newLocoNummer, int newLengte, int newMassa, int newRemming, boolean newAlsVoertuig)
    {
        Loco loco = new Loco(newLocoNummer, newLengte, newMassa, newRemming, newAlsVoertuig);
        trein.voegLocoToe(loco);
    }
}

我希望有人看到我做错了什么并能够用newby语言解释:(

我的混血儿只有垂直组。杂项应被视为桌子。您的水平和垂直线应放置组件。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.GroupLayout.*;
/**
 * Voeg loco of wagen toe aan het systeem
 *
 * @author Pieter-Jan Casteels
 * @version 2017-04-28
 */
public class VoegToe
{
    private Trein trein;
    private JFrame frame;
    private JTextField wagenNummer;
    private JTextField lengte;
    private JTextField massa;
    private JTextField lading;
    private JTextField remming;
    private JTextField handRem;
    private String currentLocoWagen;
    private JCheckBox voertuig;
    /**
     * Constructor voor objects van class VoegToe
     */
    public VoegToe(Trein newTrein)
    {
        setTrein(newTrein);
        setFields();
        makePopUp();
    }
    private void setFields()
    {
        wagenNummer = new JTextField(16);
        lengte = new JTextField(16);
        massa = new JTextField(16);
        lading = new JTextField(16);
        remming = new JTextField(16);
        handRem = new JTextField(16);
        voertuig = new JCheckBox("Is Voertuig");
        currentLocoWagen = "Wagen";
    }
    /**
     * Setter voor de Trein classe
     * 
     * @param Trein de huidige Trein
     */
    private void setTrein(Trein newTrein)
    {
        trein = newTrein;
    }
    public void makePopUp()
    {
        frame = new JFrame("Voeg Wagen of Loco toe");
        Container frameContent = frame.getContentPane();
        GroupLayout layout = new GroupLayout(frameContent);
        frameContent.setLayout(layout);
        // DropDown voor het selecteren van wagen of Loco
        JLabel leeg = new JLabel("");
        JLabel lWagenNummer= new JLabel("Wagen Nummer");
        JLabel lLengte = new JLabel("Lengte CM");
        JLabel lRemming = new JLabel("Remming TON");
        JLabel lMassa = new JLabel("Massa KG");
        JLabel lLading = new JLabel("Lading KG");
        JLabel lHandRem = new JLabel("Hand Rem TON");
        String[] comboFill = {"Wagen", "Loco"};
        JComboBox locoWagen = new JComboBox(comboFill);
        locoWagen.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    currentLocoWagen = String.valueOf(locoWagen.getSelectedItem());
                }
            });
        JButton voegToeButton = new JButton("Voeg Toe");
        voegToeButton.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    if(currentLocoWagen.equals("Wagen"))
                    {
                        voegWagenToe();
                    }
                    if(currentLocoWagen.equals("Loco"))
                    {
                        voegLocoToe();
                    }
                }
            });
        JButton resetButton = new JButton("Reset");
        resetButton.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    wagenNummer.setText("");
                    lengte.setText("");
                    massa.setText("");
                    lading.setText("");
                    remming.setText("");
                    handRem.setText("");
                }
            });
        JButton annButton = new JButton("Annuleer");
        annButton.addActionListener(new ActionListener() 
            {
                public void actionPerformed(ActionEvent e)
                {
                    frame.dispose();
                }
            });
        layout.setHorizontalGroup(layout.createSequentialGroup()
            .addGroup(layout.createParallelGroup()
                .addComponent(leeg)
                .addComponent(lWagenNummer)
                .addComponent(wagenNummer)
                .addComponent(lMassa)
                .addComponent(massa)
                .addComponent(resetButton))
            .addGroup(layout.createParallelGroup()
                .addComponent(locoWagen)
                .addComponent(lLengte)
                .addComponent(lengte)
                .addComponent(lLading)
                .addComponent(lading)
                .addComponent(annButton))
            .addGroup(layout.createParallelGroup()
                .addComponent(voertuig)
                .addComponent(lRemming)
                .addComponent(remming)
                .addComponent(lHandRem)
                .addComponent(handRem)
                .addComponent(voegToeButton)) );
        layout.setVerticalGroup(layout.createSequentialGroup()
            .addGroup(layout.createParallelGroup()
                .addComponent(leeg)
                .addComponent(locoWagen)
                .addComponent(voertuig))
            .addGroup(layout.createParallelGroup()
                .addComponent(lWagenNummer)
                .addComponent(lLengte)
                .addComponent(lRemming))
            .addGroup(layout.createParallelGroup()
                .addComponent(wagenNummer)
                .addComponent(lengte)
                .addComponent(remming))
            .addGroup(layout.createParallelGroup()
                .addComponent(lMassa)
                .addComponent(lLading)
                .addComponent(lHandRem))
            .addGroup(layout.createParallelGroup()
                .addComponent(massa)
                .addComponent(lading)
                .addComponent(handRem))
            .addGroup(layout.createParallelGroup()
                .addComponent(resetButton)
                .addComponent(annButton)
                .addComponent(voegToeButton)) );
        frame.pack();
        frame.setVisible(true);
    }
    /**
     * Checks op alle data ingeput voor een loco toe te voegen
     */
    private void voegLocoToe()
    {
        long newWagenNummer = Long.parseLong(wagenNummer.getText());
        int newLengte = Integer.parseInt(lengte.getText());
        int newMassa = Integer.parseInt(massa.getText());
        int newRemming = Integer.parseInt(remming.getText());
        // Standaard is de locomotief geen voertuig
        boolean isVoertuig = false;
        if(voertuig.isSelected())
        {
            isVoertuig = true;
        }
        addLoco(newWagenNummer, newLengte, newMassa, newRemming, isVoertuig);
    }
    /**
     * Checks op alle data ingeput voor een wagen toe te voegen
     */
    private void voegWagenToe()
    {
        long newWagenNummer = Long.parseLong(wagenNummer.getText());
        int newLengte = Integer.parseInt(lengte.getText());
        int newMassa = Integer.parseInt(massa.getText());
        int newLading = Integer.parseInt(lading.getText());
        int newRemming = Integer.parseInt(remming.getText());
        // Kijk of wagen handrem heeft of niet
        if(handRem.getText().equals(""))
        {
            addWagen(newWagenNummer, newLengte, newMassa, newLading, newRemming);
        }
        else
        {
            int newHandRem = Integer.parseInt(handRem.getText());
            addWagen(newWagenNummer, newLengte, newMassa, newLading, newRemming, newHandRem);
        }
    }
    /**
     * Voeg een wagen toe zonder schroefrem
     * 
     * @param long de nummer van de wagen
     * @param intiger lengte van de wagen in CM
     * @param intiger de massa van de wagen in KG
     * @param intiger de massa van de lading in KG
     * @param intiger de remming van de wagen
     */
    public void addWagen(long newWagenNummer, int newLengte, int newMassa, int newLading, int newRemming)
    {
        Wagen wagen = new Wagen(newWagenNummer, newLengte, newMassa, newLading, newRemming);
        trein.voegWagenToe(wagen);
    }
    /**
     * Voeg een wagen toe met schroefrem
     * 
     * @param long de nummer van de wagen
     * @param intiger lengte van de wagen in CM
     * @param intiger de massa van de wagen in KG
     * @param intiger de massa van de lading in KG
     * @param intiger de remming van de wagen
     * @param intiger remming van schroefrem
     */
    public void addWagen(long newWagenNummer, int newLengte, int newMassa, int newLading, int newRemming, int newHandRem)
    {
        Wagen wagen = new Wagen(newWagenNummer, newLengte, newMassa, newLading, newRemming, newHandRem);
        trein.voegWagenToe(wagen);
    }
    /**
     * Voeg een Locomotief toe
     * 
     * @param long de nummer van de loco
     * @param intiger lengte van de loco in CM
     * @param intiger de massa van de loco in KG
     * @param intiger de remming van de loco
     */
    public void addLoco(long newLocoNummer, int newLengte, int newMassa, int newRemming, boolean newAlsVoertuig)
    {
        Loco loco = new Loco(newLocoNummer, newLengte, newMassa, newRemming, newAlsVoertuig);
        trein.voegLocoToe(loco);
    }
}

最新更新