0

私はスイングを始めたばかりです。誰かが私を助けてくれますか...

私の「ラベル」は表示されず、代わりに「パネル」クラスにあるコンポーネントのみが表示されます。

もう 1 つ質問があります。だれでも LayoutManagers について説明してもらえますか? フレーム内で 2 つ以上の LayoutManager を使用できますか? フレームのように、FlowLayoutを使用し、BoxLayoutを使用するフレームにJPanelを追加しました...そもそもそれは可能ですか??

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

public class JForm1 extends JFrame
{
    public JForm1()
    {
        init();
    }
    public static void main(String[] args) 
    {
        JForm1 form = new JForm1();
    }
    public void init()
    {
        JFrame frame = new JFrame("My Form 1");
        frame.setSize(500,500);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().setLayout(new BoxLayout(this,BoxLayout.PAGE_AXIS));
        JLabel label = new JLabel("Enter your Name : ");
        panel MyPanel = new panel();
        frame.getContentPane().add(label);
        frame.getContentPane().add(MyPanel);
        frame.setVisible(true);
    }
}
class panel extends JPanel implements ActionListener
{
    JButton submitButton;
    JTextField text;
    panel()
    {
        this.setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
    }
    public void paintComponent(Graphics g)
    {
        text = new JTextField("Enter Name here");
        text.setSize(100,25);
        submitButton = new JButton("Submit");
        submitButton.setSize(50,90);
        submitButton.setBounds(200, 0, 80, 80);
        submitButton.addActionListener(this);
        this.add(text);
        this.add(submitButton);
    }
    public void actionPerformed(ActionEvent event)
    {
        if(event.getSource()==submitButton)
        {
            System.out.println("The Entered Name is : "+text.getText());
        }
    }
}
4

2 に答える 2

1

mypanel のレイアウトを FlowLayout に変更してみてください。

mypanel.setLayout(new FlowLayout());
于 2013-05-28T11:19:21.143 に答える