こんにちは。
フレームのサイズを設定し、テキストエリアやステータスバーを配置しました。
その後プログラムによってサイズを変更するとテキストエリアやステータスバーが表示さ
れなくなるということが起こりました。解決方法があれば教えてください。
java環境はj2sdk1.4.1です。
public class MathFrame extends JFrame{
public MathFrame{
this.setSize(new Dimension(800, 600)); //サイズを決める
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(borderLayout1); //レイアウト
contentPane.add(statusBar, BorderLayout.SOUTH); //ステータスバー
contentPane.add(jScrollPane1, BorderLayout.CENTER);
jScrollPane1.getViewport().add(m_jTextArea, null); //テキストエリア配置
}
}
この後ウィンドウが開いた後サイズを変更するとテキストエリアに表示されない部分が出
たりします。
setSize(new Dimension(900,700));//ウィンドウが開いた後の処理で
サイズを変更してもレイアウトが正しく表示されるにはどうしたらいいでしょうか。
追加ですが。
質問したの問題が起こるプログラムです。
このプログラムを実行すると、実行直後、表示されるはずのステータスバーが表示されません。
サイズを変更してもステータスバーやスクロールバーが表示されるような状態にしたいです。
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
public class test extends JFrame{
test(){
this.setSize(new Dimension(800, 600));
this.setTitle(test);
this.getContentPane().setLayout(new BorderLayout()); //レイア
ウトを設定
this.getContentPane().add(new JLabel(ステータスバー),
BorderLayout.SOUTH); //ステータスバーを配置
JScrollPane jScrollPane1 = new JScrollPane(new TextArea(テキ
ストエリア));
this.getContentPane().add(jScrollPane1,
BorderLayout.CENTER); //テキストエリアを配置
}
public static void main(String[] args){
test t = new test();
t.setVisible(true);
}
protected void processWindowEvent(WindowEvent e) {
if (e.getID() == WindowEvent.WINDOW_OPENED){
this.setSize(new Dimension(500, 400)); //サイズを小さ
くする
}
}
}
> protected void processWindowEvent(WindowEvent e) {
> if (e.getID() == WindowEvent.WINDOW_OPENED){
> this.setSize(new Dimension(500, 400)); //サイズを小さくする
> }
> }
これが無ければ上手くいくような気がしますが、
最初から小さいサイズを指定するのでは駄目なのですか?
test(){
this.setSize(new Dimension(500, 400));
...