亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java圖形界面 setBounds()函數怎么沒有效果呢?

java圖形界面 setBounds()函數怎么沒有效果呢?

慕哥6287543 2019-02-07 11:07:49
import javax.swing.*;import java.awt.event.*;import java.awt.*;import java.awt.FlowLayout;import java.io.*;public class MainFrame extends JFrame {/*** @param args*/JLabel Lab1,Lab2,Lab3,Lab4,Lab5,Lab6,Lab7;JTextField Tex1,Tex2,Tex3,Tex4,Tex5;JComboBox Comb1,Comb2,Comb3;JButton Btn1,Btn2,Btn3;JFrame frame=new JFrame("矩陣計算器");JPanel panel;public void mainframe(){Container cont=getContentPane();cont.setLayout(new FlowLayout());cont.setBackground(Color.blue);String names1[]={"單目運算","雙目運算","解線性方程(只有一解)"};Lab1=new JLabel("矩陣計算器");cont.add(Lab1);Lab1.setBounds(300,20,400,40);Lab2=new JLabel("請選擇你要進行的矩陣運算:");cont.add(Lab2);Lab2.setBounds(30,60,400,40);Comb1=new JComboBox(names1);cont.add(Comb1);Lab3=new JLabel("行");cont.add(Lab3);setVisible(true);setSize(800, 600);setLocation(300,20);}public static void main(String[] args) {MainFrame a=new MainFrame();a.mainframe();}}
查看完整描述

3 回答

?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

程序主類MainFrame繼承自JFrame,然后又來了個成員JFrame frame;,你到底想用誰來顯示?
如果主類繼承自JFrame,一般情況下在main函數中new 一個主類實例就可以了,這個實例就是個JFrame,可以作為主界面。
如果主類沒有繼承自JFrame,那需要在類成員里設置一個JFrame型的成員,new之,再setVisible(true)之。
你全做了。。。。
你的mainframe()函數用的反倒還是父類JFrame的功能。那你的那個JFrame型的frame做什么用的?
至于你提的問題,你已經將窗口設置為FlowLayout布局了,那么就得按FlowLayout的規則去設置界面。在FlowLayout布局下,每個組件的大小是自動取最合適(其實是最合適的小)的。你自己調用的setSize、setLocation、setBounds都不會有效的。
這三個函數只在自定義布局下有效,也就是:先setLayout(null)l;,但這樣一來,你所有其它組件也必須使用這三個函數設置大小和位置了,很麻煩。
java中的布局不是那么簡單的。如果單做代碼就想構造好界面,沒有2、3年功力做不到的。

查看完整回答
反對 回復 2019-03-24
?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

至于為什么setBounds()沒有效果的原意是:
你用了setLayout(FlowLayout())。
這樣一來,FlowLayout中所定義的Bounds屬性會覆蓋掉你自己的Bounds屬性。所以你的setBounds()函數就不起作用了。

解決辦法:
(1)用FlowLayout默認的Bounds屬性;
(2)setLayout(null);然后再設置setBounds();
當然,第二種方法會沒有布局管理器。

呵呵~~哪種方法你自己衡量一下吧!



查看完整回答
反對 回復 2019-03-24
?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

setBounds()不能和布局器結合使用,用戶只能使用一項,否則setBounds()就會失效

查看完整回答
反對 回復 2019-03-24
  • 3 回答
  • 0 關注
  • 3028 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號