Java使用方法集錦
很多初學者在用Java佈局器自動佈局畫界面時,經常遇見不知道如何定義區域大小或按鈕之間的距離等問題。我寫過一篇《實現JAVA手動佈局中各個組件能隨窗口變化的方法》的文章,有讀者反映算座標不好算,問能不能用佈局器實現文章中的界面。其實自動佈局也可以解決定義區域大小或按鈕之間的距離等問題,只是沒有手動佈局那麼靈活。下面我就舉一個例子。
首先,建一個frame文件(Application應用程序),在Design中將this中的layout設置為BorderLayout。
第二,在組件盤內點選Swing Container頁籤,選取Jpanel圖標,在this中上方拖拽一塊區域,佈局器會自動調整位置與大小;同樣的`方法在中下方也拖拽一塊區域;在Swing Container頁籤,選取jScrollPane圖標,將jScrollPane在中間拖拽一塊區域。拖拽的順序一定要先上後下再中間。為了方便區分,在Properties的background中,將上方的Jpanel1區域設置為紅色,下方的Jpanel2區域設置為橙色,中間的jScrollPane1為粉紅色。將Jpanel1和Jpanel2的layout設置為flowLayout(必須要手動設置,不要採用默認值)。
第三,在Jpanel中放入一個Jlable標題欄,JTextField1文本框和Jbutton按鈕,在組件盤內點選Swing 頁籤,選取JLable圖標在Jpanel1的中畫一個標題欄,將text改為“請輸入查詢條件”,再選取JtextField在Jpanel1中畫一個文本框,將text改為空,最後選取Jbutton在Jpanel1中再畫一個按鈕將text改為“查詢”。畫完後他們都是在中間,而且大小固定,這時點選Jpanel的flowLayout1將右邊Properties中的alignment設置為LEFT,這時Jpanel1中的組鍵就會向左排列。選中其中一個組鍵,在Properties中的preferredSize可以設置組鍵的寬和高。同樣的方法在Jpanel2中畫三個Jbutton按鈕,將text分別設為“增加”、“刪除”、“修改”。點選Jpane2的flowLayout2將右邊Properties中的hgap設置為30(按鈕的間距,可根據自己的需要調整數值大小), 這樣就調整了三個按鈕之間的距離,設置vgap還可以改變Jpane2區域的高度。
第四,在jScrollPane1中建一個表格用來顯示數據庫數據的內容,在組件盤內點選Swing 頁籤,選取JTable圖標,將Jtable加入到jScrollPane1中。
最後,將this中的defaultCloseOperation改為EXIT_ON_CLOSE,這樣在關閉窗口時程序會自動退出。
程序源代碼如下(除中文註釋部分的兩句是自己加上去,其餘是自動生成):
import g.*;
import .*;
import t.*;
import or;
import ultTableModel;
public class Frame1
extends JFrame {
BorderLayout borderLayout1 = new BorderLayout();
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
JPanel jPanel3 = new JPanel();
JLabel jLabel1 = new JLabel();
JTextField jTextField1 = new JTextField();
JButton jButton1 = new JButton();
FlowLayout flowLayout1 = new FlowLayout();
FlowLayout flowLayout2 = new FlowLayout();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
JButton jButton4 = new JButton();
GridLayout gridLayout1 = new GridLayout();
JScrollPane jScrollPane1 = new JScrollPane();
JTable jTable1 = new JTable();
public Frame1() {
try {
jbInit();
}
catch (Exception e) {
tStackTrace();
}
}
public static void main(String[] args) {
Frame1 frame1 = new Frame1();
ize(new Dimension(400, 350));
();
}
private void jbInit() throws Exception {
ontentPane()ayout(borderLayout1);
ackground();
ayout(flowLayout1);
ackground();
ayout(flowLayout2);
ackground();
ayout(gridLayout1);
referredSize(new Dimension(100, 16));
ext("請輸入查詢條件");
referredSize(new Dimension(140, 22));
ext("");
ext("查詢");
ctionListener(new Frame1_jButton1_actionAdapter(this));
lignment();
gap(5);
gap(10);
ext("增加");
ext("刪除");
ext("修改");
gap(30);
gap(5);
efaultCloseOperation(EXIT_ON_CLOSE);
ontentPane()(jPanel1, H);
(jLabel1, null);
(jTextField1, null);
(jButton1, null);
ontentPane()(jPanel2, H);
(jButton2, null);
(jButton3, null);
(jButton4, null);
ontentPane()(jPanel3, ER);
(jScrollPane1, null);
iewport()(jTable1, null);
}
//模擬查詢數據庫
void jButton1_actionPerformed(ActionEvent e) {
try { //製作表
Vector vcol = new Vector(); //列名
Vector vrow = new Vector(); //內容
for (int col = 1; col < 31; col++) {
lement("列" + col);
}
for (int row = 1; row < 101; row++) {
Vector vr1 = new Vector();
for (int col = 1; col < 31; col++) {
lement(row + "/" + col);
}
lement(vr1);
}
DefaultTableModel dtm = new DefaultTableModel(vrow, vcol);
jTable1 = new JTable(vrow, vcol);
utoResizeMode(_RESIZE_OFF); //滾動條設置左右滾
iewport()(jTable1, null); //在滾動條中放入表
}
catch (Exception ex) {
MessageDialog(null, ex);
}
}
}
class Frame1_jButton1_actionAdapter
implements onListener {
Frame1 adaptee;
Frame1_jButton1_actionAdapter(Frame1 adaptee) {
tee = adaptee;
}
public void actionPerformed(ActionEvent e) {
ton1_actionPerformed(e);
}
}
-
Java多線程知識點
引導語;多線程是指從軟件或者硬件上實現多個線程併發執行的技術。以下是本站小編分享給大家的Java多線程知識點,歡迎閲讀!1.1多線程的概念多線程編程的含義是你可將程序任務分成幾個並行的子任務。特別是在網絡編程中,你會發現很多功能是可以併發執行的。比如網...
-
java xp環境變量設置
本文實例為大家分享了java的環境變量設置方法,供大家參考,具體內容如下安裝好jdk後找到我的電腦(右鍵)——》屬性——》高級選項卡——》環境變量,裏面有管理員的用户變量,有系統變量。選哪一個都無所謂,我選的是Administrator的用户變量即管理員的.用户變量,點擊“新...
-
Javascript和Java語言間的異同比較
雖然Javascript與Java有緊密的聯繫,但卻是兩個公司開發的不同的兩個產品。那麼js和java有什麼關係,兩種語言的不同點是什麼呢?以下是本站小編搜索整理的關於Javascript和Java語言間的異同比較,供參考學習,感興趣的小夥伴們可以參考一下!想了解更多相關信息請持續關...
-
Java內存溢出的解決方法
一、內存溢出類型1、fMemoryError:PermGenspaceJVM管理兩種類型的內存,堆和非堆。堆是給開發人員用的上面説的就是,是在JVM啟動時創建;非堆是留給JVM自己用的,用來存放類的信息的。它和堆不同,運行期內GC不會釋放空間。如果webapp用了大量的第三方jar或者應用有太...