私はJavaとGUIを学んでいます。私はいくつかの質問があります。最初は、JFrameのサブクラスとJFrameのインスタンスの作成に大きな違いがある場合です。サブクラスがより強力であるように思えますか?私それはGUIを作成するときに、このコードを使用する必要があります場合も不思議:新しいコンテンツを表示するためにJava GUIとJFrameをクリアしますか?
Container contentPane = getContentPane();
contentPane.setLayot(new Flowlayout());
私は私のGUIクラスを追加し、それは私が手に持っているタスクに、これまでの簡単なテストだ、ユーザが入力しました。テキストフィールドにテキストを入力し、ボタンを押して次のステップに進んでください。フレームをクリアして新しいコンテンツを表示するにはどうすればよいですか、これを行う特別な方法はJavaにありますか?私は、新しいウィンドウを作成するのではなく、同じウィンドウを使用する方がいいでしょうか?ヘルプid preciate!おかげ
// Gui class
import java.awt.FlowLayout; // layout
import java.awt.event.ActionListener; // listener
import java.awt.event.ActionEvent; // event
import javax.swing.JFrame; // windows properties
import javax.swing.JLabel; // row of text
import javax.swing.JTextField; // enter text
import javax.swing.JOptionPane; // pop up dialog
import javax.swing.JButton; // buttons
// import.javax.swing.*;
public class Gui extends JFrame {
private JLabel text1;
private JTextField textInput1;
private JTextField textInput2;
private JButton nextButton;
// constructor creates the window and it's components
public Gui() {
super("Bank"); // title
setLayout(new FlowLayout()); // set default layout
text1 = new JLabel("New customer");
add(text1);
textInput1 = new JTextField(10);
add(textInput1);
nextButton = new JButton("Continue");
add(nextButton);
// create object to handle the components (action listener object)
frameHandler handler = new frameHandler();
textInput1.addActionListener(handler);
nextButton.addActionListener(handler);
}
// handle the events (class inside another class inherits contents from class outside)
private class frameHandler implements ActionListener {
public void actionPerformed(ActionEvent event){
String input1 = "";
// check if someone hits enter at first textfield
if(event.getSource() == textInput1){
input1 = String.format(event.getActionCommand());
JOptionPane.showMessageDialog(null, input1);
}
else if(event.getSource() == nextButton){
// ??
}
}
}
}
ニース!パネルの数に制限はありますか?ですから、私はパネルに異なるコンテンツを追加するだけです! –
いいえ実際には制限はありません。しかし、java.awtパッケージが提供するさまざまなレイアウトについてもっとよく学びましょう。それは何らかの形であなたを助けることができます。すべてのコンポーネントにデフォルトのレイアウト設定があるので、JFrameにはBorderLayoutがあり、JPanelにはFlowLayoutがあります。よろしくお願いします。 –
私は彼らがContentPaneから離れた時を知りませんcontentPane = frame.getContentPane();上記の答えは、2番目の負荷でJframeに表示される重複データを修正しました –