1

NetBeans で Java Swing を使用して JFrame フォームを作成しました。いくつかのテキスト フィールド、いくつかのコンボ ボックス、および次のフォームに移動するためのボタンが含まれています。NetBeans を閉じて再度開くまで、すべて正常に動作します。フォームを実行すると、テキスト フィールドのみが応答しなくなります。コンボ ボックスとボタンは正しく動作します。テキスト フィールドで setEditable()、setFocusable()、requestFocusinWindow() を使用してみましたが、出力は変わりません。私を助けてください。

package Hora.GUI;

import java.awt.Color; 
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class InputJFrame3 extends javax.swing.JFrame
{
    public InputJFrame3()
    {
        initComponents();

        numberJTextField.addMouseListener(new MouseAdapter() 
                                          {
                                              public void mouseClicked(MouseEvent e)
                                              {
                                              numberJTextField.setForeground(Color.black);
                                              }
                                          });
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

    numberJLabel = new javax.swing.JLabel();
    numberJTextField = new javax.swing.JTextField();
    nextJButton = new javax.swing.JButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setTitle("HORA");
    setFocusableWindowState(false);

    numberJLabel.setText("Number");

    nextJButton.setText("next >");
    nextJButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            nextJButtonActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(nextJButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(layout.createSequentialGroup()
                    .addComponent(numberJLabel)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(numberJTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(0, 0, Short.MAX_VALUE)))
            .addContainerGap())
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(numberJLabel)
                .addComponent(numberJTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addComponent(nextJButton)
            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    );

    pack();
}// </editor-fold>//GEN-END:initComponents

    private void nextJButtonActionPerformed(java.awt.event.ActionEvent evt)
    {
        //GEN-FIRST:event_nextJButtonActionPerformed
        number=Integer.parseInt(numberJTextField.getText());

        Boolean mistake=false;

        if(number<1 || number>249)
        {
            mistake=true;
            numberJTextField.setForeground(Color.red);
        }

        if(!mistake)
            setVisible(false);
    }//GEN-LAST:event_nextJButtonActionPerformed

    public int getNumber()
    {
        return number;
    }

    private int number;

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton nextJButton;
    private javax.swing.JLabel numberJLabel;
    private javax.swing.JTextField numberJTextField;
    // End of variables declaration//GEN-END:variables
}


package Hora.GUI;

public class Run
{
    public static void main(String[] args)
    {
        java.awt.EventQueue.invokeLater(new Runnable()
        {
            public void run() 
            {
                InputJFrame3 frame = new InputJFrame3();
                frame.setVisible(true);
            }
        });
    }
}
4

1 に答える 1