全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2040
推到 Plurk!
推到 Facebook!

程序有点问题,麻烦各位大大解决则个!

答題得分者是:neoart
whitefox
一般會員


發表:2
回覆:1
積分:0
註冊:2007-06-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-06-24 23:35:18 IP:222.240.xxx.xxx 訂閱
<textarea class="java" rows="10" cols="60" name="code"> import java.awt.*; import java.awt.event.*; public class MainWindow extends WindowAdapter implements ActionListener,WindowListener { Frame frm=new Frame("数据转换程序"); Panel Panel1=new Panel(); Panel Panel2=new Panel(); Point wangge=null; Image MyImage; Dialog Dialog2; Dialog Dialog5; Label Label2=new Label(); int Lamp; //灯个数 TextField TextField1=new TextField(); Label Label1=new Label("请输入亮点数,范围在40至100之间"); Dialog Dialog1; Float Space;//间隔 TextField TextField2=new TextField(); Dialog Dialog3; Label Label3=new Label("请输入两灯之间间隔距离(cm)"); Button Button1=new Button ("...");//路径 FileDialog FD; TextField TextField4=new TextField(); Image TPImage; Button Sure=new Button("Sure"); Button Canel=new Button("Canel"); Button Next=new Button("Next"); boolean Panduan=false; public void go(){ Sure.setBackground(new Color(236,167,98)); Canel.setBackground(new Color(236,190,98)); Next.setBackground(new Color(236,190,98)); Panel2.setLayout(new BorderLayout()); Panel1.setBackground(new Color(111,222,222)); Panel2.setBackground(new Color(236,190,98)); Panel2.add(TextField1,null); Panel2.add(Label1,null); Panel2.add(TextField2,null); Panel2.add(Label3,null); Panel2.add(TextField4,null); Panel2.add(Label2,null); frm.add("Center",Panel1); Panel1.add("East",Panel2); //创建网格区域 Panel1.setLayout(new BorderLayout()); //创建程序主窗口 frm.setVisible(true); frm.setSize(800,600); frm.setLayout(new BorderLayout()); Button1.addActionListener(this); Sure.addActionListener(this); Canel.addActionListener(this); Next.addActionListener(this); frm.addWindowListener(this); } public static void main (String args[]) //开始 { MainWindow mainwindow=new MainWindow(); mainwindow.go(); } //实现窗口监听器的所有方法 public void windowActivated(WindowEvent e) { } public void windowClosed(WindowEvent e) { } public void windowDeactivated(WindowEvent e) { } public void windowDeionified(WindowEvent e) { } public void windowIconified(WindowEvent e) { } public void windowOpened(WindowEvent e) { } public void windowClosing(WindowEvent e) { System.exit(0); } public void actionPerformed(ActionEvent e) //按钮判断 { if (e.getSource()==Sure) { System.out.print("sure"); } else if(e.getSource()==Canel) { System.out.print("sure"); } else if(e.getSource()==Next) { System.out.print("sure"); } else if (e.getSource()==Button1) { System.out.print("sure"); } } } </textarea> 显示出来的窗口只是个白板什么都看不到,麻烦各位解决下!谢谢! 我是新手原谅则个
neoart
版主


發表:22
回覆:582
積分:425
註冊:2003-05-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-06-26 07:30:58 IP:220.132.xxx.xxx 訂閱
1.對於 BorderLayout的layout manager設定位置的話,你要指定東西南北之關係
ex:
frm.add("CENTER",Panel1);
Panel1.add("EAST",Panel2);
應改為
frm.add(Panel1,BorderLayout.CENTER);
Panel1.add(Panel2,BorderLayout.EAST);

2.在容器中加入元件,除非是null layout mamanger,否則你要指定Layoutmanager的對映條件
如你的例子,Panel2的Layoutmanamger 是 BorderLayout,那
Panel2.add(TextField1,null); //---->LayoutManager不知道你要放在什麼位置
應改為
Panel2.add(TextField1,BorderLayout.NORTH); //或是其他的方位
所以建議你用Grid Layout Manager,可以指定行列位置

3.在你的 public void go(){....}函數內,未尾要加上
frm.repaint();
frm.validate();
使frame重繪

4.寫GUI,如果是要放在IE或是其他瀏覽器中,用awt可以,但如果是要放在桌面上應用,建議用javax.swing系列的套件
一來是效能較佳,二來是功能比較健全
(懶的去推想東西南北的關係的話,用JBuilder去建立App & JFrame去拉 GUI component比較快)





編輯記錄
neoart 重新編輯於 2007-06-26 07:32:44, 註解 無‧
whitefox
一般會員


發表:2
回覆:1
積分:0
註冊:2007-06-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-07-02 00:38:02 IP:61.186.xxx.xxx 訂閱
问题已经解决,谢谢!
系統時間:2024-05-06 6:25:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!