第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

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

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

慕哥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("矩陣計(jì)算器");JPanel panel;public void mainframe(){Container cont=getContentPane();cont.setLayout(new FlowLayout());cont.setBackground(Color.blue);String names1[]={"單目運(yùn)算","雙目運(yùn)算","解線性方程(只有一解)"};Lab1=new JLabel("矩陣計(jì)算器");cont.add(Lab1);Lab1.setBounds(300,20,400,40);Lab2=new JLabel("請選擇你要進(jìn)行的矩陣運(yùn)算:");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貢獻(xiàn)1813條經(jīng)驗(yàn) 獲得超2個(gè)贊

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

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

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊

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

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

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



查看完整回答
反對 回復(fù) 2019-03-24
?
揚(yáng)帆大魚

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊

setBounds()不能和布局器結(jié)合使用,用戶只能使用一項(xiàng),否則setBounds()就會(huì)失效

查看完整回答
反對 回復(fù) 2019-03-24
  • 3 回答
  • 0 關(guān)注
  • 3023 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號