初年度、教師は生徒のサインインとサインアウトのシステムを構築し、データベースをリンクして生徒の情報を管理し、かなりのGUIインターフェイスを設計するように依頼しました。そのため、CSDNでフォームを作成するためのブログをたくさん見つけました。直接メインにいるブロガーはほとんどいないことがわかりました。フォーム形式はメソッドで記述されていますが、パブリッククラスXXXはJFrame {} ...を拡張し、ウィンドウクラスはメインメソッドで直接Newになります。This。()などは初心者の場合、実行方法がわからない場合があります。したがって、以下は、mainメソッドで直接フォームを作成し、それを呼び出さずに呼び出すことです。
1.シンプルなフォームの作成
最初に注意することは、フォームのコンテンツをmainメソッドに直接書き込むとプログラムが煩雑になるため、このウィンドウ関数を実装するために、コードの長さに関係なく、最初にこの関数を実装しましょう。
最初にプログラムの効果を見てから、興味があれば見下ろしてみましょう。
注:setBounds(int x、int y、int length、int width)メソッドでは、この青い領域はウィンドウを表します。
ここで、xの正の方向は右に水平で、y軸の正の方向は下に垂直です。数学のデカルト座標系とは異なるy軸の正の方向に特に注意してください。
最後の2つのパラメーターは、(ボタン、テキストボックスなど)の長さと幅です。
コードは次のように表示されます。
package Textt;
import javax.swing.JButton; //这是导入按钮包。
import javax.swing.JFrame; //导入窗口框架包
import javax.swing.JLabel; //导入标签包
public class Text001 {
public static void main(String[] args) {
JFrame frm = new JFrame(); //这里是新建一个变量为frm的窗口。
frm.setTitle("窗口实验1"); //给窗口命名//
frm.setLayout(null);
//这是窗口布局管理函数。这里填null,也就是说,后面的各种按钮,标签,在什么位置,大小是什么,都自己设计,没有模板。
JLabel l1=new JLabel("This is a cute Window"); //这里的label是 标签的意思。表示声明一个变量为 l1 的Lable变量
l1.setBounds(10, 20, 180, 20); //这里表示对l1标签在窗口中的位置。
frm.setSize(400, 300); //确定框架的长和宽。这里是长为300宽为200的窗口
JButton bt1=new JButton("确定"); bt1.setBounds(40, 150, 120, 20);
JButton bt2=new JButton("取消"); bt2.setBounds(250, 150, 120, 20);
/*这一部分如果缺少,那么你定义的各种标签,按钮都不会显示出来。所以在最后一定要加上。不要忘记*/
frm.add(bt2);
frm.add(bt1);
frm.add(l1);
//下面两行也不能忘记写//
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//默认关闭操作//
frm.setVisible(true); //ture表示让窗口看的见。
}
}
より高度に見え、もう少し快適に見える拡張バージョンを書いてみましょう。
コードは以下のように表示されます
package Text;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Text002 extends JFrame {
JFrame frm = new JFrame();
JLabel l1=new JLabel("This is a cute Window");
JButton bt1=new JButton("确定");
JButton bt2=new JButton("取消");
public Text002() {
l1.setBounds(10, 20, 180, 20);
bt1.setBounds(40, 150, 120, 20);
bt2.setBounds(250, 150, 120, 20);
/*以下this,都可以用上一个程序的frm来代替。效果是一样的*/
this.setTitle("窗口实验1");
this.setLayout(null);
this.setSize(400, 300);
this.add(bt2);
this.add(bt1);
this.add(l1);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String args[]) {
new Text002();
}
}
効果は同じです。
2.ボタンの応答(機能ボタンの実装)
フォームを作成する過程で、ボタンをクリックする必要があり、インターフェースがポップアップします。以前にCSDNブログをたくさん見つけましたが、私のような初心者にとっては、内部のコードは非常に難しいものです。パラメーターを少し変更すると、エラーが発生します。そして、失敗することがよくあります。ボタンをクリックします。エラーは報告されませんが、実行後にボタンをクリックしても応答がありません。非常に苦しんでいます。
今回はまだメインでフォームを書いています。わかりやすくするために、最もシンプルなボタン応答を提供します。
最初に説明します。ボタンをクリックして新しいインターフェイスをポップアップする場合は、「イベント監視パッケージ」をインポートする必要があります
。importjava.awt.event.ActionEvent;
import java.awt.event.ActionListener;
最初に効果を示します:(ポップアップ2ボタンを実行せず、「ポップ1」のポップアップ応答を作成しました)コメントに注意してください〜
コードは次のとおりです:コメントに注意してください〜
package Textt;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Text003 {
public static void main(String args[]) {
JFrame frm1=new JFrame();
frm1.setTitle("母窗口");
frm1.setLayout(null);
frm1.setSize(400, 350);
JButton bt1=new JButton("弹出1"); bt1.setBounds(20, 150, 120, 20);
JButton bt2=new JButton("弹出2"); bt2.setBounds(190, 150, 120, 20);
frm1.add(bt1);
frm1.add(bt2);
frm1.setVisible(true);
frm1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//弹出功能实现!!
bt1.addActionListener(new ActionListener() {
//方法前缀是bt1,意思是,点击了bt1后,弹出新的界面。
//这里要看清楚啊, **bt1.addActionListener(new ActionListener()!)** **把光标移到感叹号处,按上回车键。根据系统提示添加重载方法。**
//然后我们直接在重载方法中写出要弹出的窗口的
@Override
public void actionPerformed(ActionEvent e) {
JFrame frm2=new JFrame();
frm2.setLayout(null);
frm2.setSize(460, 350);
JLabel l2=new JLabel("点 击 b t 1 按钮,弹出来的新窗口"); l2.setBounds(20, 50, 250, 30);
frm2.setTitle("子窗口");
frm2.add(l2);
frm2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm2.setVisible(true);
}
});
}
}
//在按钮弹出新的界面,注意JFrame,Lable,Button等的变量名不要和main方法中的母窗口变量名一样。
//也就是说,你在main方法中new了一个变量为frm的JFrame,那就在事件监听中的新窗口的变量换frm1什么的;
実際、最も基本的なボタンの応答では、イベントを生成する必要があるボタンにリスナーを追加し、メソッドのオーバーロードでポップアップする新しいウィンドウの特定の情報(テキストボックス、ボタンサイズ)を直接書き込むだけです。位置、ウィンドウ名など)、ウィンドウに多くのボタンを設定し、各ボタンにモニターを追加できます。
たとえば、「bt1」ボタンの変数応答でダイアログボックスをポップアップする場合は、「bt1.addActionListener(new ActionListener()...そしてオーバーロードメソッドで新しいウィンドウを作成する」だけで済みます。
将来的には、データベースに接続するためのJavaGUIが導入され、データの追加、削除、変更、およびクエリがデータベースに接続される予定です。要約する。