當前位置:首頁 » 編程語言 » swingjava布局

swingjava布局

發布時間: 2022-11-14 00:01:36

A. 在java Swing中一個容器中可以有多個布局么

可以再JFrame中添加兩個JPanel 兩個JPanel的布局用一種,JPanel內再用另一種布局

B. swing 布局

窗口採用默認布局(BorderLayout),North放那四個字,

Center放JSplitPane,
splitPane中,左邊放樹(樹外面最好套一層JScrollPane)
splitPane右邊放一個JPanel,採用GridbagLayout,
第一行為一個JPanel(採用默認布局FlowLayout),放那些文本和單選按鈕,
第二行第一列放一個JPanel(設置border,裡面放JScrollPane套表格),第二列放一個JPanel(採用BoxLayout,裡面放兩個按鈕),第三列與第一列類似。
另外,你截圖上兩個表格未對齊,按我的方式,兩個表格是上對齊的,會好看一點。

寫完後才發現,你只截了窗口的一部分,外面還有個JSplitPane吧,不過按我的方法不影響,只是因為原來說的窗口(現在發現只是個JPanel),需要手工設置布局為BorderLayout

C. 在JAVAswing布局設置FlowLayout和GridLayout中了怎麼調節組件的大小。

這種布局情況要用GridBagLayout,FlowLayout和GridLayout完成不了

D. java swing布局

null layout不是很好,所有的東西都要自己定義,一旦窗口大小變化就要重新計算。我建議使用MigLayout。上手慢,但很強大。http://www.miglayout.com

而且,就算你要用內建的Layout Manager,還有一個GridBag Layout,比Grid Layout更強大一點。

接下來,那個邊框,不是JSeparator, 而是一個邊框。我猜是

Border result = BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), "修改信息: ");

如果是我,使用MigLayout,以上代碼還是比較簡單的:

importjava.awt.event.KeyEvent;

importjavax.swing.BorderFactory;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.JTextField;
importjavax.swing.SwingUtilities;
importjavax.swing.border.Border;
importjavax.swing.border.EtchedBorder;

importnet.miginfocom.swing.MigLayout;

{
publicMyFrame(){
begin();
}

privatevoidbegin(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(newMigLayout("insets10,fill","[]","[]5[]"));

//firstpanel
JPanelfirst=newJPanel();

//first這個panel有5像素的邊緣,2列,3行。第一列右對齊,佔40%寬度;第二列默認,左對齊,占據剩餘所有空間。
first.setLayout(newMigLayout("insets5,fill","[right,40%]5[fill,grow]","[]5[]5[]"));
first.setOpaque(false);
//這個面板的border有些特殊:createTitledBorder()方法的簽名可以有兩個:前一個是線的類型,後面一個是標題文本。
Borderresult=BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED),"修改信息:");
first.setBorder(result);
//把first加到contentPane裡面
add(first,"cell00,grow");

JLabeloriginal=newJLabel("輸入原密碼:");
JLabelnewPass=newJLabel("輸入新密碼:");
JLabelconfirm=newJLabel("確認新密碼:");

JTextFieldorig_field=newJTextField();
JTextFieldnew_field=newJTextField();
JTextFieldconfirm_field=newJTextField();

//miglayout的核心就是網格排布。用坐標來定義添加元素的位置
first.add(original,"cell00,w100!");//addtocol0,line0,min:pref:maxwidthallsetto100
first.add(newPass,"cell01,w100!");//addtocol0,line1
first.add(confirm,"cell02,w100!");//addtocol0,line2

first.add(orig_field,"cell10,w150!");//addtocol1,line0,min:pref:maxwidthallsetto150
first.add(new_field,"cell11,w150!");//addtocol1,line1
first.add(confirm_field,"cell12,w150!");//addtocol1,line2

//按鈕面板
JPanelbuttons=newJPanel();
buttons.setOpaque(false);
//邊緣為5像素;有兩列,中間是10像素的間距,列內元素居中;有一行,行中上下對齊也是居中
buttons.setLayout(newMigLayout("insets5,fill","[center]10[center]","[center]"));
JButtonyes=newJButton("Y.確定");
//快捷鍵設為虛擬鍵Y,得到下劃線效果
yes.setMnemonic(KeyEvent.VK_Y);

JButtonquit=newJButton("Q.退出");
//快捷鍵設為虛擬鍵Q,得到下劃線效果
quit.setMnemonic(KeyEvent.VK_Q);

//把yes按鈕加到第一列第一行,min:pref:max的大小都設為100像素
buttons.add(yes,"cell00,w100!");
//把quit按鈕加到第二列第一行,min:pref:max的大小都設為100像素
buttons.add(quit,"cell10,w100!");

//把按鈕面板加到contentPane裡面
add(buttons,"cell01,grow");
pack();
setBounds(0,0,500,400);
setLocationRelativeTo(null);
setVisible(true);
}
publicstaticvoidmain(String[]args){
SwingUtilities.invokeLater(newRunnable(){

@Override
publicvoidrun(){
MyFrameframe=newMyFrame();

}

});
}
}

效果是這樣:


E. java swing怎樣開發出漂亮的界面

使用Swing照樣可以開發出漂亮的界面.

主要的解決方案如下:

  • 1: 合理的布局 , 搭建好界面的框架. 熟悉常用的布局, 並且布局還可以嵌套布局. 可以實現復雜而又美觀的界面.

  • 2: 適當的圖片, 按鈕, 背景等 都可以使用圖片, 當然了為了節省系統資源, 可以使用稍微壓縮得比較小的圖片.

  • 3: 搭配html , swing支持html簡單的標簽, 所以美化JButton ,JLabel等組件時, 可以使用一些Html標簽. 來美化~~

  • 4: 顏色調和. 界面要美觀, 也可以適當的添加顏色, 但是要注意搭配和協調

  • 5: 重寫部分組件, swing自帶的組件外觀, 的確不太讓人恭維, 但是我們可以自己根據需求進行重寫.

  • 6: 添加動態效果, 我們寫javaScript經常是用來做特效的 , 我們可以借鑒一些JS特效的思路, 使用線程, 來給swing組件 等,添加動態的效果 , 比如抖動, 移動 , 滑出 等 特效~

  • 7: 更換皮膚和外觀 , 或者使用第三方的皮膚 ,比大神製作的皮膚BeautyEye ,就想當的漂亮

F. JAVA swing怎樣讓按鈕和標簽隨著窗口的放大而放大,排版不變

如果你想實現動態的按照要求的放大和縮小。那麼你應該設置布局為frame.setLayout(null)
定義變數 width,height。然後在窗口改變大小重繪組件的時候,動態設置組件大小

比如 JButton.setBounds(0,0,width/10,height/10);

===================================================================

建議使用borderlayout邊界布局。非常好用。用邊界布局套流布局,表布局就能做出很多界面了

簡單的範例,你參考下

publicclassMyBorderLayout{

publicstaticvoidmain(String[]args){

Framef=newFrame("P03窗口");

f.setLayout(newBorderLayout(30,5));

f.add(newButton("東"),BorderLayout.EAST);

f.add(newButton("西"),BorderLayout.WEST);

f.add(newButton("中"));

f.add(newButton("南"),BorderLayout.SOUTH);

f.add(newButton("北"),BorderLayout.NORTH);

f.pack();

f.setVisible(true);

}

}

如果你想實現動態的按照要求的放大和縮小。那麼你應該設置布局為frame.setLayout(null)
定義變數 width,height。然後在窗口改變大小重繪組件的時候,動態設置組件大小

比如 JButton.setBounds(0,0,width/10,height/10);

G. java swing 要怎麼控制布局啊 好亂啊 那些控制項的 size()和setBounds 根本沒用

如果你設置布局了那麼setsize、setlocation之類的方法就沒什麼用了,不過你可將布局設為空也就是setlayout(null);然後在setsize、setlocation,就沒問題了

H. java swing 實現以下布局

tabbedPane 加兩個panel
行駛記錄用MigLayout布局。
5行兩列。最小面的一行設grow ,列設span就可以了。

I. java關於swing窗口布局的小問題!

JSplitPane splitPane = new JSplitPane (JSplitPane.HORIZONTAL_SPLIT, a, b);
splitPane.setOneTouchExpandable (true);
splitPane.setDividerLocation (100);

J. 求助java的swing窗體怎麼做如圖布局效果

運行效果


importjava.awt.Container;
importjava.awt.Font;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.Box;
importjavax.swing.BoxLayout;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.SwingUtilities;
{
privateJLabelnumLabel=newJLabel("15");
privateJButtonstartBtn=newJButton("Start");
privateJButtonstopBtn=newJButton("Stop");
privateJButtonspeedUpBtn=newJButton("SpeedUp");
privateJButtonslowDownBtn=newJButton("SlowDown");
{
startBtn.addActionListener(this);
stopBtn.addActionListener(this);
speedUpBtn.addActionListener(this);
slowDownBtn.addActionListener(this);
Containercon=getContentPane();
con.setLayout(newBoxLayout(con,BoxLayout.Y_AXIS));
numLabel.setFont(newFont("",Font.BOLD,60));
BoxnumBox=Box.createHorizontalBox();
numBox.add(numLabel);
add(numBox);
BoxbtnBox=Box.createHorizontalBox();
btnBox.add(startBtn);
btnBox.add(stopBtn);
btnBox.add(speedUpBtn);
btnBox.add(slowDownBtn);
add(btnBox);

setTitle("ThreadTest");
setSize(400,300);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
@Override
publicvoidactionPerformed(ActionEvente){

}
publicstaticvoidmain(String[]args){
SwingUtilities.invokeLater(()->newTestWin());
}
}

熱點內容
使用hmailserver搭建郵件伺服器 發布:2025-01-12 16:05:43 瀏覽:809
ps3游戲下載解壓 發布:2025-01-12 15:55:46 瀏覽:596
視頻點播伺服器搭建區域網 發布:2025-01-12 15:46:44 瀏覽:88
unit長安豪華版有哪些配置 發布:2025-01-12 15:45:05 瀏覽:85
資料庫表的分區 發布:2025-01-12 15:39:29 瀏覽:369
u點家庭伺服器網關設置有什麼用 發布:2025-01-12 15:33:15 瀏覽:153
王者歸來java 發布:2025-01-12 15:27:13 瀏覽:68
安卓手機為什麼卡又發熱 發布:2025-01-12 15:23:18 瀏覽:571
如何驗證root密碼是否正確 發布:2025-01-12 15:23:15 瀏覽:592
socketftp伺服器端 發布:2025-01-12 15:19:55 瀏覽:236