Java GUI プログラミング 4 --- ラベルコンポーネント JLabel
1. JLabelを知る
JLabelコンポーネントは、それ自体が情報を表示するために使用され、一般的にコンテンツを表示するために直接変更することができないラベルを表します。作成された Label オブジェクトは、 Container クラスの add() メソッドによってコンテナに追加することができます。JLabel クラスの共通メソッドと定数は以下の通りです。
<テーブル シリアル番号 定数 説明 1 public static final int LEFT 左寄せのタグテキスト 2 public static final int CENTER ラベルテキストを中央寄せにする 3 public static final int RIGHT タグのテキストを右揃えにする <テーブル シリアル番号 方式 説明 1 public JLabel() throws HeadlessException JLabel オブジェクトを作成します。 2 public JLabel(String text) throws HeadlessException ラベルを作成し、テキストの内容を設定します。 3 public Label(String text,int alignment) throws HeadlessException ラベルを作成し、JLable.LEFT、JLabel.RIGHT、JLabel.Allignmentの値を使用して、テキスト内容とアライメントを設定します。 4 public JLabel(String text,Icon icon,int horizontalAlignment) 指定されたテキスト、画像、および水平アライメントを持つ JLabel オブジェクトを作成します。 5 public JLabel(Icon image,int horizontalAlignment) 定義されたグラフィックと水平アライメントを持つ JLabel インスタンスを作成します。 6 public void setText(String text) ラベルのテキストを設定する 7 public String getText() ラベルテキストを取得する 8 public void setAlignment(int alignment) ラベルのアライメントを設定する 9 public void setIcon(Icon icon) 指定された画像を設定する例 タグを使用する
import java.awt;
import java.awt.Dimension;
import java.awt;
import javax.swing.JLabel ;
import javax.swing.JFrame ;
public class JLabelDemo01{
public static void main(String args[]){
JFrame frame = new JFrame("JLable Test") ;
JLabel lab = new JLabel("I am a label",JLabel.CENTER) ; // instantiate the label object
frame.add(lab) ; // add the component to the panel
frame.setBackground(Color.WHITE) ; // set the background color of the form
Dimension dim = new Dimension() ;
dim.setSize(400,200) ; // the size of the form
frame.setSize(dim) ; //Set the size of the form
Point point = new Point(500,100) ; // set the coordinates
frame.setLocation(point) ; // set the coordinates of the form
frame.setVisible(true) ; // set the form to be visible
}
}
実行中の結果
上記のコードにコンテナの概念を反映させたい場合は、JFrameのgetContentPane()から直接ウィンドウのContainerオブジェクトを取得し、このオブジェクトにコンポーネントを追加すればよいでしょう。
修正したコードは以下の通りです。
import java.awt;
import java.awt;
import java.awt;
import javax.swing.JLabel ;
import javax.swing.JFrame ;
public class JLabelDemo001{
public static void main(String args[]){
JFrame frame = new JFrame("JLable Test") ;
Container container = frame.getContentPane(); // get the container of the current form
JLabel lab = new JLabel("I am a label",JLabel.CENTER) ; // instantiate the label object
container.add(lab) ; // Add the component pieces to the form's container
Dimension dim = new Dimension() ;
dim.setSize(400,200) ; // the size of the form
frame.setSize(dim) ; // set the size of the form
Point point = new Point(500,100) ; // set the coordinates
frame.setLocation(point) ; // set the coordinates of the form
frame.setVisible(true) ; // set the form to be visible
}
}
実行結果は、上記のものと同じです
2. JLableのテキストスタイルを変更する
今すぐフォントを変更したい場合は、Componentクラスで定義されている以下のメソッドを使用します。
public void setFont(Font f)
Fontクラスは、セットアップでフォントを表現するために使用されます。Front クラスの共通メソッドと定数は次の表のとおりです。
<テーブル シリアル番号 メソッドまたは定数 タイプ 説明 1 public static final int BOLD 定数 テキストは太字で表示されます 2 public static final int ITALIC 定数 斜体でのテキスト表示スタイル 3 public static final int PLAIN 定数 テキストの表示スタイルを通常スタイルにする 4 public Font(String name,int style,int size) コンストラクトメソッド オブジェクトのインスタンスを作成し、表示スタイルとサイズを指定します。 5 public String getFontName() 共通メンバーメソッド フォント名の取得例 ラベルの表示フォント、サイズ、背景色を設定する
import java.awt.Color;
import java.awt;
import java.awt;
import java.awt;
import javax.swing;
JFrame; import javax.swing;
public class JLabelDemo02
JLabelDemo02
public static void main(String args[])
{
JFrame frame = new JFrame("Change the text style of JLable");
// instantiate the label object, left-aligned text
JLabel lab = new JLabel("Text in label", JLabel.LEFT);
// Create Font object using Serief font, display style for italic Font.
Font fnt = new Font("Serief", Font.ITALIC + Font.BOLD, 30);
lab.setFont(fnt); //set the font in the label
lab.setForeground(Color.BLUE); //set the color of the text in the label
frame.add(lab); // add the component to the panel
frame.getContentPane().setBackground(Color.PINK); // set the background color of the form
Dimension dim = new Dimension(); //initialize the size of the form
dim.setSize(400, 200);
frame.setSize(dim); //Set the size of the form
Point point = new Point(500, 100); //initialize the coordinate point
frame.setLocation(point); //Set the position of the form
frame.setVisible(true);
}
}
ランの結果
ローカルにあるすべてのフォントを取得する
マシンにあるすべてのフォントを取得したい場合はどうすればよいでしょうか。-- それはGraphicsEnvironmentクラスを使ってできます。
GraphicsEnvironmentは、すべての描画デバイスとこのマシンのすべてのフォントコレクションを返すことができます、このクラスは、抽象クラスは、オブジェクトをインスタンス化するために、直接クラスのgetLocalGraphicsEnvironment()メソッドを使用できる、その後にgetAvailableFontFamilyNames()メソッドを介して利用できるすべてのフォントを取得する、コードは次のようになります。
例 マシン上で利用可能なすべてのフォントを取得する
import java.awt;
public class GetAllFonts
{
public static void main(String args[])
{
GraphicsEnvironment eq = GraphicsEnvironment.getLocalGraphicsEnvironment();
String fontNames[] = eq.getAvailableFontFamilyNames();
for (int x = 0; x < fontNames.length; x++)
{
System.out.println(fontNames[x]);
}
}
}
結果が多すぎるため、一部のみ出力する。残りは省略されます。
Agency FB
Algerian
Arial
//too many to omit...
Consolas
//too many to omit...
Times New Roman
//too many omissions...
Imitation Song
//too many omissions...
Chinese characters
bold
JLabelに画像を設定する
Icon インターフェースと ImageIcon サブクラスを使って、JLabel に直接画像を設定することができます。この場合、下表の構成を使って、画像データをバイト配列として JLabel に設定することが可能です。
<テーブル シリアル番号 方式 タイプ 説明 1 public ImageIcon(byte[] imageData) コンストラクトメソッド 画像情報を保持するバイト配列をImageIconに設定します。 2 public ImageIcon(String filename) コンストラクトメソッド ファイル名でImageIconオブジェクトを生成 3 public ImageIcon(String finame,String description) コンストラクトメソッド 画像へのパスと画像の簡単な説明を設定するまず、最初のコンストラクタの使い方を見てみましょう。画像ファイルからバイトの配列を取得したい場合、InputStreamクラスを使って処理を行います。
サンプルコードです。ラベルに画像を設定する
package java1.awt.jlable;
import java.awt.Dimension;
import java.awt.Color;
import java.awt;
import java.awt.Point;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import javax.swing.JLabel;
import javax.swing.JFrame;
import javax.swing.Icon;
import javax.swing.ImageIcon;
public class JLabelDemo03
JLabelDemo03 {
public static void main(String args[])
{
JFrame frame = new JFrame("Set image on JLabel label");
//specify the path of the picture
String picPath = "C:\\Users\\\Administrator\\\Desktop\\\ Smurf.jpg";
File file = new File(picPath); // instantiate the object of the File class
InputStream input = null;
byte b[] = new byte[(int) file.length()]; // set the length of the byte array according to the size of the picture
try
{
input = new FileInputStream(file); //Instantiate the file byte input stream
input.read(b); //read the bytes from the image into the byte array
input.close(); //close the file stream
} catch (Exception e)
{
e.printStackTrace();
}
Icon icon = new ImageIcon(b); // use byte array, instantiate ImageIcon object
// instantiate the label object: with image, center-aligned
JLabel lab = new JLabel("Label with image", icon, JLabel.CENTER);
//set the font, italic, bold, font size 28
Font fnt = new Font("宋体", Font.ITALIC + Font.BOLD, 28);
// Set the font in the label
lab.setFont(fnt);
//the color of the font in this label
lab.setForeground(Color.BLUE);
// Set the background color of the label
lab.setOpaque(true);
lab.setBackground(Color.PINK);
//add the labels to the panel
frame.add(lab); // add the components to the panel
// Set the background color of the form
frame.getContentPane().setBackground(Color.WHITE);
// Set the width and height of the window
Dimension dim = new Dimension();
dim.setSize(800,600 );
frame.setSize(dim);
//set the coordinates of the form
Point point = new Point(100, 100); // set coordinates
frame.setLocation(point);
frame.setVisible(true);
}
}
ランニング効果。
jlabelの背景色を設定する
jlabelはデフォルトで透明なので、デフォルトで背景色を設定してもうまくいきません。
しかし、これによってその背景色を変更することができます。
jlabel.setOpaque(true);
jlabel.setbackground(color.black);
プロヴァンス
https://blog.csdn.net/mr_pang/article/details/47449495
画像読み込み用のIOストリームをテープで使って、JLabelにグラフィックを表示するように設定するのが面倒なら、ImageIconのインスタンス化にグラフィックのパスを渡して、JLabelクラスの対応するコンストラクタを使えばいいのです。
例 画像パスを指定してImageIconをインスタンス化する例
画像を表示します。
場所を指定します。C:\UsersAdministrator Desktop Thmurf_Jc.jpg;
import java.awt.Dimension;
import java.awt.Color;
import java.awt;
import java.awt;
import javax.swing;
import javax.swing.JFrame;
import javax.swing.Icon;
import javax.swing.ImageIcon;
public class JLabelDemo04
JLabelDemo04 {
public static void main(String args[])
{
JFrame frame = new JFrame("Instantiate JLabel by image path");
// Specify the image path
String picPath = "C:\\Users\\Administrator\\\Desktop\\\ Smurf_Jc.jpg";
// Instantiate ImageIcon
Icon icon = new ImageIcon(picPath);
// instantiate the label object
JLabel lab = new JLabel("Set JLabel by image path", icon, JLabel;)
// Initialize the font
Font fnt = new Font("Serief", Font.ITALIC + Font.BOLD, 16);
// Set the font for the label
lab.setFont(fnt);
// This label font color
lab.setForeground(Color.RED);
// Set the label background color
lab.setOpaque(true);
lab.setBackground(Color.PINK);
// put the labels into the panel
frame.add(lab);
Dimension dim = new Dimension();
dim.setSize(500, 300);
frame.setSize(dim);
Point point = new Point(100, 100); // set coordinates
frame.setLocation(point);
frame.setVisible(true);
}
}
結果を実行します。
上記の画像の設定方法は、どちらも効果を試すことができます。画像が不確定な入力ストリームから来る場合(データベースからの読み込みなど)には、最初の方法を使用します。画像がファイルから取得される場合は、IO処理の少ない2番目の方法を使う方が簡単です。
関連
-
myeclipseでコンパイルするとAntエラーが発生する javaの例外が発生しました。
-
JavaMailのメール送信が失敗するケースとその説明の分析
-
JQuery DataTable 详解
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 4 at text.Division.main(Divisi
-
HttpClientがGZIP形式でない場合の対処法
-
JSPで「リストが型解決できない!」の解決方法
-
java -serverコマンドで「Error: no `server' JVM at ... jvm.dll」を解決する方法です。
-
ローカルリソースのロードが許可されていない場合の解決策
-
プラグインの実行は、ライフサイクル構成によってカバーされていません: org.codehaus.mojo:aspectj-maven-plugin:1.3.
-
Android TextViewの行間解析
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
エラー java.util.NoSuchElementException
-
Java Exceptionが発生しました エラー解決
-
IllegalArgumentException この例外を解決する方法
-
Eclipseで "XXXX "の解決策を(型に)解決することができない
-
Javaクラスローダーにソースコードから潜り込む
-
this()の呼び出しはコンストラクタ本体の最初の文でなければならない 例外解決と原因分析
-
Google Chromeのエラー「Not allowed to load local resource」の解決策について
-
maven プラグイン エラー プラグインの実行は、ライフサイクル構成ソリューションの対象外です。
-
引数型[java.lang.String]の名前がありません..........................。.バグ処理
-
VectorのJavaコレクションを徹底解析