パラメータがasBorderLayout
とasの2つのメソッドを作成しましたFlowLayout
。各メソッドには、独自のフレームがあります。
ただし、混合レイアウトでポップアップするウィンドウは1つだけです。
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JLabel;
import javax.swing.JFrame;
public class BLayOut extends JFrame
{
private JFrame fr,fr2;
private JLabel label,label2,label3;
public void win(BorderLayout bl)
{
fr =new JFrame("BorderLayout");
setSize(300,200);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(bl);
label= new JLabel("Label 1");
label2 = new JLabel("Label 2");
label3 = new JLabel("Label 2");
add(label,BorderLayout.NORTH);
add(label2,BorderLayout.SOUTH);
add(label3,BorderLayout.CENTER);
}
public void win(FlowLayout fl)
{
fr2 =new JFrame("FlowLayout");
setSize(500,200);
setVisible(true);
setLocation(300, 0);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(fl);
label= new JLabel("Label 1");
label2 = new JLabel("Label 2");
label3 = new JLabel("Label 3");
add(label);
add(label2);
add(label3);
}
}
class BLayOutMain
{
public static void main (String args [])
{
BLayOut bl = new BLayOut();
bl.win(new BorderLayout());
bl.win(new FlowLayout());
}
}
あなたはあなたの参照を混同しています...
まず、JFrame
...から拡張するクラスを作成します。
public class BLayOut extends JFrame {
次に、JFrame
...の2つのインスタンス変数を宣言します。
private JFrame fr, fr2;
次に、メソッドで、のインスタンスを作成してJFrame
これらの変数の1つに割り当て、すぐに無視します...
fr = new JFrame("BorderLayout");
// Which frame are you modifying now...??
setSize(300, 200);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(bl);
label = new JLabel("Label 1");
label2 = new JLabel("Label 2");
label3 = new JLabel("Label 2");
add(label, BorderLayout.NORTH);
add(label2, BorderLayout.SOUTH);
add(label3, BorderLayout.CENTER);
基本的に、これが行っているのは、インスタンスのプロパティを設定することであり、またはではBLayOut
ありません。fr
fr2
extends JFrame
fromを削除することから始めますBLayOut
。これは問題を混乱させます。これにより、メソッドが見つからないコンパイラエラーのリストが生成されます。これらは、方法に応じて、fr
またはのいずれかを使用して修正できますfr2
。
fr = new JFrame("BorderLayout");
// Which frame are you modifying now...??
fr.setSize(300, 200);
fr.setVisible(true);
fr.setDefaultCloseOperation(EXIT_ON_CLOSE);
fr.setLayout(bl);
fr.label = new JLabel("Label 1");
fr.label2 = new JLabel("Label 2");
fr.label3 = new JLabel("Label 2");
fr.add(label, BorderLayout.NORTH);
fr.add(label2, BorderLayout.SOUTH);
fr.add(label3, BorderLayout.CENTER);
setVisible
初期化されたUIを表示する準備ができたときにのみ呼び出す必要があります
fr = new JFrame("BorderLayout");
//...
fr.setVisible(true);
このように、UIはrevalidate
何らかの方法でフレームを必要とせずに表示されます...
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加