Swingのレイアウト – プログラミング – Home

通知
すべてクリア

Swingのレイアウト


N
 N
(@N)
ゲスト
結合: 21年前
投稿: 1
Topic starter  

こんにちは。
フレームのサイズを設定し、テキストエリアやステータスバーを配置しました。
その後プログラムによってサイズを変更するとテキストエリアやステータスバーが表示さ
れなくなるということが起こりました。解決方法があれば教えてください。
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));//ウィンドウが開いた後の処理で

サイズを変更してもレイアウトが正しく表示されるにはどうしたらいいでしょうか。


引用解決済
トピックタグ
N
 N
(@N)
ゲスト
結合: 21年前
投稿: 1
 

追加ですが。
質問したの問題が起こるプログラムです。
このプログラムを実行すると、実行直後、表示されるはずのステータスバーが表示されません。
サイズを変更してもステータスバーやスクロールバーが表示されるような状態にしたいです。

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)); //サイズを小さ
くする
}
}
}


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

> protected void processWindowEvent(WindowEvent e) {
> if (e.getID() == WindowEvent.WINDOW_OPENED){
> this.setSize(new Dimension(500, 400)); //サイズを小さくする
> }
> }

これが無ければ上手くいくような気がしますが、
最初から小さいサイズを指定するのでは駄目なのですか?

test(){
this.setSize(new Dimension(500, 400));
...


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました