カスタムJPanelパネルの背景
1。序文
1. GUIのフルネームは、グラフィカルユーザーインターフェイスであるグラフィカルユーザーインターフェイスです。 JavaのGUIは私たちの生活で広く使用されており、非常に一般的です。多くのアプリケーションは、QQアイコンをクリックして対応するログインフォームをポップアップするなど、このGUIをプログラムと設計に使用します。
一般に、プログラムとユーザー間の相互作用は、対応するプログラムの実行中のインターフェイスに基づいています。
2。JPANELパネルは、スイング中のパネルコンテナクラスです。このパネルは、ネストをサポートし、レイアウトメソッドを設定し、さまざまなレイアウトマネージャーを設定して、jbuttonボタン、JTextfieldテキストボックスなどの他のコントロールを追加して、プログラムインターフェイスフォームを設計および改善します。
setbackground()を図面パネルとしてサポートするのに十分ではありません。ここでは、jPanelの画像背景を設定するためにカスタマイズを実装します。
2。プラットフォームツール
1.myeclipse
myeclipse2014を使用してここでデモを行います
Java AWT+Swingをサポートする他のプラットフォームも利用できます
3。画像ディスプレイ
1。同じ形式でのJPANELの異なる処理効果
(1)最初に変更されていないフォームを作成します。一般的なデフォルトのjPanelインターフェイス効果は次のとおりです。
(2)背景色の効果の単純な設定:
(3)処理後にjPanelの下でフォーム効果をカスタマイズしました。
2。コード実装
JPANELのバックグラウンド処理をカスタマイズすると、画像はBG.PNGであり、テストクラスと同じパスにあります。画像を使用するときは、相対パスを使用してください。
java.awt.graphicsをインポートします。 javax.swing.imageiconをインポートします。 javax.swing.jframeをインポートします。 javax.swing.jpanelをインポートします。パブリッククラスGuitest {private static jframe jframe; //フォームプライベートJPanel JPanelを宣言します。 //アートボードのpublic guitest(){//構築方法jframe = new jframe(); init(); } private void init(){jframe.settitle( "test"); jpanel = new jPanel(){//キーコードは、paint @overrideプロテクションvoid paintComponent(グラフィックスG)の方法を書き直すことです{super.paintComponent(g); ImageIcon IMG = new ImageIcon(guitest.class.getResource( "bg.png")); / *** bg.pngは独自の画像に置き換えられます*ここで使用される相対パス、bg.pngはテストクラスと同じパスにあります*ただし、相対パスを使用して絶対パスを使用しないようにすることをお勧めします*/ img.painticon(this、g、0、0); }}; jpanel.setopaque(true); jframe.setbounds(200、200、500、400); //ディスプレイ位置を左に200ピクセルを設定し、上部200ピクセルを設定し、画面サイズは500*400 jFrame.Add(JPanel)です。 // jframe.setVisible(true)のフォームにアートボードを追加します。 //ディスプレイインターフェイスを設定} public static void main(string [] args){new Guitest(); //オブジェクトをインスタンス化}} 4。レイアウトマネージャーを展開します
これが簡単なログインフォームです:
カスタムjPanelの背景に基づいて実装されたシンプルなログインフォーム、GridBaglayoutレイアウトの設定、ボタンテキストボックスおよびその他の基本コントロールの追加。
(1)コードは次のとおりです。
java.awt.graphicsをインポートします。 java.awt.gridbagconstraintsをインポートします。 java.awt.gridbaglayoutをインポートします。 java.awt.insetsをインポートします。 javax.swing.imageiconをインポートします。 javax.swing.jbuttonをインポートします。 javax.swing.jframeをインポートします。 javax.swing.jlabelをインポートします。 javax.swing.jpanelをインポートします。 javax.swing.jpasswordfieldをインポートします。 javax.swing.jtextfieldをインポートします。パブリッククラスのギット{//フォーム、パネル、コントロールのプライベート静的jframe jframe;プライベートJlabel Jlabel、Jlabel1;プライベートグリッドバグレイアウトグリッドバッグ。プライベートグリッドバッグコンストラリングの制約。プライベートJTextfield JTfield1; Private JPasswordfield jpfield1; Private JButton JButton1、JButton2、JButton3;プライベートJPanel JPanel; public guit(){jframe = new JFrame(); jlabel = new Jlabel(); jlabel1 = new Jlabel(); jtfield1 = new jtextfield(); jpfield1 = new JPassWordField(); gridbag = new gridbaglayout(); jbutton1 = new jbutton(); jbutton2 = new jbutton(); jbutton3 = new jbutton(); init(); } / ** * init()インターフェイスを初期化して表示 * / private void init(){jframe.settitle( "login"); / *** JPANEL背景を設定*/ jPanel = new jPanel(){@Override Protected void paintComponent(Graphics G){super.PaintComponent(g); ImageIcon IMG = new ImageIcon(guitest.class.getResource( "ddmbg.jpg")); img.painticon(this、g、0、0); }}; // jlabelのテキストを初期化、jbutton jlabel.settext( "username:"); jlabel1.settext( "password:"); jbutton1.settext( "login"); jbutton2.settext( "exit"); jbutton3.settext( "Register"); //表示位置と画面サイズ500*400 JFrame.setBounds(450、240、400、240)を設定します。 // JPanelはGridBaglayoutレイアウトマネージャーJPanel.Setopaque(false)を使用します。 jpanel.setlayout(gridbag); //ユーザー名ラベルを初期化し、アートボードの制約にコントロールを追加します= getGridBagConstraints(0,0,1,1,0,0、GridBagConstraints.Center、GridBagConstraints.None、New Insset(10,0,10,0)、0,0); gridbag.setConstraints(Jlabel、制約); jpanel.add(jlabel); //ユーザー名のテキストボックスを初期化し、アートボードの制約にコンポーネントを追加します= getGridBagConstraints(1,0,1,1,0,0、GridBagConstraints.Center、GridBagConstraints.None、New Insset(10,0,10,0)、100,0); gridbag.setconstraints(jtfield1、制約); jpanel.add(jtfield1); //パスワードの初期化ラベルの制約= getGridBagConstraints(0,1,1,1,0,0、gridbagconstraints.center、gridbagconstraints.none、new Insets(10,0,10,0)、0,0); gridbag.setConstraints(jlabel1、制約); jpanel.add(jlabel1); //パスワードの初期化テキストボックスの制約= getGridBagConstraints(1,1,1,1,1,0,0、gridbagconstraints.center、gridbagconstraints.none、new Insets(10,0,10,0)、100,0); gridbag.setConstraints(jpfield1、制約); jpanel.add(jpfield1); //登録ボタンを初期化し、アートボードの制約にコントロールを追加します= getGridBagConstraints(0,2,1,1,0,0、GridBagConstraints.Center、GridBagConstraints.None、New Inset(10,0,10,0)、0,0); gridbag.setConstraints(jbutton3、制約); jpanel.add(jbutton3); //ログインボタンの制約の初期化= getGridBagConstraints(1,2,1,1,0,0、gridbagconstraints.center、gridbagconstraints.none、new Insets(10,0,10,0)、0,0); gridbag.setConstraints(jbutton1、制約); jpanel.add(jbutton1); // exitボタンの制約を初期化する= getGridBagConstraints(2,2,1,1,0,0、gridbagconstraints.center、gridbagconstraints.none、new Insets(10,0,10,0)、0,0); gridbag.setConstraints(jbutton2、制約); jpanel.add(jbutton2); // jframe.add(jpanel)をフォームするためにアートボードを追加します。 // Form Initializationが完了します}プライベートStatic GridBagConstraints getGridBagConstraints(int gridx、int gridy、int gridwidth、int gridheight、double weightx、int anchor、int fill、insets int ipadx、int ipady)重量、アンカー、塗りつぶし、挿入図、iPadx、iPady); } public static void main(string [] args){new Guit(); jframe.setVisible(true); }}ここで、DDMBGは画像名です
(2)効果は図に示されています。
レイアウトは基盤であり、GUI設計でも非常に重要です。
3つの主要なレイアウトと他のレイアウトマネージャーの使用と習得に習熟するには、自分で練習する必要があります。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。