JavaのLayoutManagerとLayoutManagerのタイプとは何ですか?
レイアウトマネージャーを使用すると、コンテナー内のコンポーネントのサイズと位置を決定することで、GUIフォームでのビジュアルコンポーネントの配置方法を制御できます。
LayoutManagerの種類
Javaには6つのレイアウトマネージャーがあります
- FlowLayout :ページ上の単語のように、コンポーネントをコンテナに配置します。 左から右、上から下のトップラインを埋めます 。コンポーネントは、追加された順序で配置されます。つまり、最初のコンポーネントが左上に表示されます。コンテナがすべてのコンポーネントを表示するのに十分な幅がない場合は、ラインにラップされます。コンポーネント間の垂直方向と水平方向のギャップを制御できます。コンポーネントは、左、中央、または右に揃えることができます。
- BorderLayout :すべてのコンポーネントをコンテナの端または中央に沿って配置します。つまり、上、下、右、左 エリアの端。上または下に追加されたコンポーネントは優先される高さを取得しますが、その幅はコンテナの幅になり、左または右に追加されたコンポーネントも優先される幅を取得しますが、その高さはコンテナの残りの高さになります。中央に追加されたコンポーネントは、優先される高さも幅も取得しません。コンテナの残りの領域をカバーします。
- GridLayout :すべてのコンポーネントを同じサイズのセルのグリッドに配置します 、左から右に追加します tおよび上から下 。セルに配置できるコンポーネントは1つだけで、グリッドの各領域は同じサイズになります。コンテナのサイズが変更されると、すべてのセルのサイズが自動的に変更されます。コンポーネントをセルに配置する順序は、追加されたときに決定されます。
- GridBagLayout :これは、すべてのコンポーネントをセルのグリッドに配置し、コンテナのサイズが変更されるたびにオブジェクトのアスペクト比を維持する強力なレイアウトです。このレイアウトでは、セルのサイズが異なる場合があります。コンポーネント間に一貫した水平方向と垂直方向のギャップを割り当てます。これにより、列または行内のコンポーネントのデフォルトの配置を指定できます。
- BoxLayout :複数のコンポーネントを垂直または水平に配置します 、ただし両方ではありません。コンポーネントは左から右または上から下に配置されます 。コンポーネントが水平に整列している場合 、すべてのコンポーネントの高さは同じで、最大サイズのコンポーネントと同じになります。コンポーネントが垂直に整列している場合 、すべてのコンポーネントの幅は同じで、最大幅のコンポーネントと等しくなります。
- CardLayout :同じサイズのコンポーネントを2つ以上配置します。コンポーネントはデッキに配置されています 、同じサイズのすべてのカードと常に一番上のカードのみが表示される 。コンテナに追加された最初のコンポーネントは、デッキの上部に保持されます。左、右、上、下の端のデフォルトのギャップはゼロで、カードコンポーネントは水平または垂直に表示されます。
例
import java.awt.*;
import javax.swing.*;
public class LayoutManagerTest extends JFrame {
JPanel flowLayoutPanel1, flowLayoutPanel2, gridLayoutPanel1, gridLayoutPanel2, gridLayoutPanel3;
JButton one, two, three, four, five, six;
JLabel bottom, lbl1, lbl2, lbl3;
public LayoutManagerTest() {
setTitle("LayoutManager Test");
setLayout(new BorderLayout()); // Set BorderLayout for JFrame
flowLayoutPanel1 = new JPanel();
one = new JButton("One");
two = new JButton("Two");
three = new JButton("Three");
flowLayoutPanel1.setLayout(new FlowLayout(FlowLayout.CENTER)); // Set FlowLayout Manager
flowLayoutPanel1.add(one);
flowLayoutPanel1.add(two);
flowLayoutPanel1.add(three);
flowLayoutPanel2 = new JPanel();
bottom = new JLabel("This is South");
flowLayoutPanel2.setLayout (new FlowLayout(FlowLayout.CENTER)); // Set FlowLayout Manager
flowLayoutPanel2.add(bottom);
gridLayoutPanel1 = new JPanel();
gridLayoutPanel2 = new JPanel();
gridLayoutPanel3 = new JPanel();
lbl1 = new JLabel("One");
lbl2 = new JLabel("Two");
lbl3 = new JLabel("Three");
four = new JButton("Four");
five = new JButton("Five");
six = new JButton("Six");
gridLayoutPanel2.setLayout(new GridLayout(1, 3, 5, 5)); // Set GridLayout Manager
gridLayoutPanel2.add(lbl1);
gridLayoutPanel2.add(lbl2);
gridLayoutPanel2.add(lbl3);
gridLayoutPanel3.setLayout(new GridLayout(3, 1, 5, 5)); // Set GridLayout Manager
gridLayoutPanel3.add(four);
gridLayoutPanel3.add(five);
gridLayoutPanel3.add(six);
gridLayoutPanel1.setLayout(new GridLayout(2, 1)); // Set GridLayout Manager
gridLayoutPanel1.add(gridLayoutPanel2);
gridLayoutPanel1.add(gridLayoutPanel3);
add(flowLayoutPanel1, BorderLayout.NORTH);
add(flowLayoutPanel2, BorderLayout.SOUTH);
add(gridLayoutPanel1, BorderLayout.CENTER);
setSize(400, 325);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String args[]) {
new LayoutManagerTest();
}
} 出力
-
JavaとJavaScriptの違いは何ですか?
Web開発者のJeremyKeithが2009年に述べたように、「JavaはJavaScriptに、ハムはハムスターになります」。そのアナロジーの正確さは議論の余地がありますが、その背後にある精神は確かです。JavaとJavaScriptは、共通の言語ルートを共有しているにもかかわらず、2つの非常に異なるプログラミング言語です。何年にもわたって、それらはもう少し重複するようになりましたが、JavaScriptは、Webサイトをインタラクティブにする主要なフロントエンド言語であり続け、Javaはサーバーサイドおよびアプリケーションプログラミングで引き続き人気があります。開発者を雇ったり、コーディ
-
OLED スクリーンとその種類とは
デジタルディスプレイ技術は大幅に改善され、進化しています。ディスプレイ メーカーは、経済的で耐久性があるだけでなく、最高の視聴体験を提供するスクリーンを製造しようとしています。周りを見渡すと、私たちが使用しているほとんどの電子機器の画面タイプは、LCD、LED、または CRT 画面であることがわかります。しかし、これらの基本的な問題は、膨大な電力を消費するか、表示品質が低いことです. これらの問題を克服するために、消費電力が少なく、輝度レベルが高い新しい種類のディスプレイ画面が製造されています。これらの表示画面は、OLED ディスプレイとして知られています。それでは、この表示について以下で詳し