0

GUI を作成したばかりですが、別の GUI を作成して両方をリンクしたいと考えています。

したがって、ユーザーが「次へ」ボタンを選択すると、最初の GUI で 2 番目の GUI が表示されます。

このために、新しいクラスを作成し、GUI を再度作成する必要がありますか?

これが私が今持っているものです:

import java.awt.Color;

import javax.swing.*;

public class Wizard {

private JLabel lblPicture;
private JRadioButton btLdap, btKerbegos, btSpnego, btSaml2;
private JButton btNext;
private JPanel panel;

public static void main(String[] args) {
    new Wizard();

}
public Wizard() {
    JFrame frame = new JFrame("Wizard");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(600,360);
    frame.setVisible(true);
    MyPanel();
    RadioButtons();
    Button();
    Image();
    groupButton();
    frame.add(panel); 
    frame.setVisible(true);

}
public void MyPanel() {
    panel = new JPanel();
    panel.setLayout(null);}
public void RadioButtons() {
    btLdap = new JRadioButton ("Ldap");
    btLdap.setBounds(60,85,100,20);
    panel.add(btLdap);

    btKerbegos = new JRadioButton ("Kerbegos");
    btKerbegos.setBounds(60,115,100,20);
    panel.add(btKerbegos);

    btSpnego =new JRadioButton("Spnego");
    btSpnego.setBounds(60,145,100,20);
    panel.add(btSpnego);

    btSaml2 = new JRadioButton("Saml2");
    btSaml2.setBounds(60,175,100,20);
    panel.add(btSaml2);
}
public void Button() {
    btNext = new JButton ("Next");
    btNext.setBounds(400,260,100,20);
    panel.add(btNext);
}
public void Image() {
    ImageIcon image = new ImageIcon("image.jpg");
    lblPicture = new JLabel(image);
    lblPicture.setBounds(200,20, 330, 270);
    panel.add(lblPicture);
}

private void groupButton() {

    ButtonGroup bg1 = new ButtonGroup( );

    bg1.add(btLdap);
    bg1.add(btKerbegos);
    bg1.add(btSpnego);
    bg1.add(btSaml2);

    }
}
4

3 に答える 3

2
  • 別のウィンドウを表示するには、JFrame、JDialog などのウィンドウを作成し、setVisible(true)最初のウィンドウと同じように呼び出します。
  • 他の「ウィンドウ」を別のクラスにする必要があるかどうかを尋ねると、おそらくその答えはイエスです。最初のクラスとはまったく異なる一連の動作と目標があるため、懸念事項を分離することをお勧めします。
  • そうは言っても、複数のウィンドウを表示することが常に最適なユーザー インターフェイス デザインとは限りません。多くの場合、CardLayout を使用するコンテナーを使用して複数のビューを表示することをお勧めします。
  • 別のウィンドウをモーダル形式で表示する場合、つまり、最初のウィンドウが 2 番目のウィンドウが処理されるのを待ってからユーザーの操作を許可する場合、2 番目のウィンドウはモーダル JDialog または JOptionPane (変装した JDialog) にする必要があります。
于 2013-08-06T21:57:06.590 に答える
0

2 つの GUI を異なるクラスに記述します。プログラムを開始したら、最初の GUI を開始します。

FirstGUI frame1 = new FirstGUI("Title text");
frame1.setVisible(true);

次に、ボタンのアクション リスナー コードで「next」を呼び出します...

frame1.setVisible(false); //if you want to save the frame
frame1.dispose(); //if you want to kill the frame

SecondGUI frame2 = new SecondGUI("Title text");
frame2.setVisible(true);
于 2013-08-06T21:58:18.020 に答える