0

このスクリプトを作成しました。私の問題は、行を終了して次の行に進みたいということです。コードのこの特定のセクションでフローレイアウトを使用しており、グリッドなどの他のレイアウトを試しましたが、うまくいきません。助けてください、例は大歓迎です。事前に感謝します。これが私のコードです:

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class CardLayoutDemo implements ItemListener {
JPanel cards;
final static String BUTTONPANEL = "Card with JButtons";

public void addComponentToPane(Container pane) {

    JPanel card1 = new JPanel(new FlowLayout(FlowLayout.RIGHT));
    card1.add(new JLabel("Username:"));
    card1.add(new JTextField("Username", 10));
    card1.add(new JButton("Login")); //end line here

    card1.add(new JLabel("Password:"));
    card1.add(new JTextField("Password", 10));
    card1.add(new JButton("Register")); //end line here

    card1.add(new JCheckBox());
    card1.add(new JLabel("Remember credentials"));

    cards = new JPanel(new CardLayout());
    cards.add(card1, BUTTONPANEL);

    pane.add(new JPanel() {
        @Override
        public Dimension getPreferredSize() {
            return new Dimension(800, 200);
        }
    }, BorderLayout.CENTER);
    pane.add(cards, BorderLayout.PAGE_END);
}

public void itemStateChanged(ItemEvent evt) {
    CardLayout cl = (CardLayout)(cards.getLayout());
    cl.show(cards, (String)evt.getItem());
}

private static void createAndShowGUI() {
    JFrame frame = new JFrame("Login");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    CardLayoutDemo demo = new CardLayoutDemo();
    demo.addComponentToPane(frame.getContentPane());

    frame.pack();
    ImageIcon img = new ImageIcon("C:\\Users\\********\\Pictures\\settings-file-icon-2.png");
    frame.setIconImage(img.getImage());
    frame.setSize(850, 650);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);

}

public static void main(String[] args) {

    try {

        UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
    } catch (UnsupportedLookAndFeelException ex) {
        ex.printStackTrace();
    } catch (IllegalAccessException ex) {
        ex.printStackTrace();
    } catch (InstantiationException ex) {
        ex.printStackTrace();
    } catch (ClassNotFoundException ex) {
        ex.printStackTrace();
    }

    UIManager.put("swing.boldMetal", Boolean.FALSE);

    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            createAndShowGUI();
        }
    });
}

}

これは、現在の jframe の外観です。現在の画面

そして、これは私がそれを次のようにしたいものです:画面編集

4

2 に答える 2