私はなぜプログラムをコンパイルするときにpanel.add(txtnum1)
とpanel.add(button2)
が表示されないのか分かりません。 panel.add(button)
は問題なく動作しますが、私のコンパイラは警告もエラーもスローされません。JPanelはボタンとテキストフィールドを追加しません
package gui;
import javax.swing.*;
import java.awt.*;
public class GUI {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setSize(new Dimension(300, 500));
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setBackground(Color.GRAY);
frame.getContentPane().add(panel);
JButton button = new JButton("Submit");
panel.add(button);
JTextField txtnum1 = new JTextField();
txtnum1.setPreferredSize(new Dimension(30, 50));
panel.add(txtnum1);
JButton button2 = new JButton("Clear");
panel.add(button2);
}
}
おそらく他のコンポーネントが表示されていないパネルに追加されます。絶対位置とサイズを設定するのではなく、レイアウトマネージャを使用してコンポーネントの表示方法を制御する必要があります。 – Titus
'JTextField txtnum1 = new JTextField();txtnum1.setPreferredSize(new Dimension(30、50)); 'テキストフィールドのサイズは、文字列の幅に' setColumns(int) 'を使用し、高さを変更するには 'setFont(bigOrSmallFont)'を使用して設定する必要があります)。 –
* "私のコンパイラは何の警告もエラーもスローしませんでしたが、何かが恋しいですか?" *コンパイラは、実行時に間違っているかもしれない多くのものを拾いません。 OKをコンパイルすると、コードにバグはありません。 –