私は単純なJavaプログラムを持っています。実行すると、Eclipseに3つのJButtonが表示されます。ボタンは、レイアウトの配置を変更するように設定されています。左と右を整列させるには左を押し、中央を整列するには右と中央を整列させます。Javaプログラムは、ウィンドウがリサイズされるまで反応しません。
ボタンはこれを行いますが、サイズを変更するまで、ウィンドウ内のアライメントは変更されません。
Iveはjdkとeclipseの両方を更新しようとしましたが、違いはありません。コード自体に問題がないことがわかりました。
誰でもこの理由を知っていますか?
import javax.swing.JFrame;
public class Main {
public static void main(String []args){
Layout_buttonsAndActionEvents layout = new Layout_buttonsAndActionEvents();
layout.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
layout.setSize(300,300);
layout.setVisible(true);
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Layout_buttonsAndActionEvents extends JFrame {
private static final long serialVersionUID = 1L;
private JButton leftButton;
private JButton rightButton;
private JButton centerButton;
private FlowLayout layout;
private Container container;
public Layout_buttonsAndActionEvents(){
super("The Title");
layout = new FlowLayout();
container = new Container();
setLayout(layout);
leftButton = new JButton("Left");
add(leftButton);
//Align to the left
leftButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
layout.setAlignment(FlowLayout.LEFT);
layout.layoutContainer(container);
}
});
centerButton = new JButton("Center");
add(centerButton);
//Align to the right
centerButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
layout.setAlignment(FlowLayout.CENTER);
layout.layoutContainer(container);
}
});
rightButton = new JButton("Right");
add(rightButton);
//Align to the right
rightButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
layout.setAlignment(FlowLayout.RIGHT);
layout.layoutContainer(container);
}
});
}
}
アライメントを変更した後にウィンドウを再パックしますか? –
コードを投稿できますか? –
コメントには入れないでください。質問を編集して質問に追加することができます。 – byxor