2011-05-07 46 views
0

我用java編寫了一個小週末支付小程序。但是當談到獲得一個體面的佈局我很無能。我開始將面板和網格佈局添加到代碼中。但我不知道如何實施它們。如何使用面板管理我的Java applet?

這是代碼。

import java.awt.*; 
import java.applet.*; 
import java.awt.event.*; 
import java.text.DecimalFormat; 
import javax.swing.*; 

public class WeeklyPayCalculatorApplet extends Applet implements ActionListener { 

    //define variables, Button, label, TextField 
     //Create a Button class 




     Label title1 = new Label("Western Distribution"); 
     Label title2 = new Label("Weekly Payroll Calculation"); 
     Label lblEnterMins = new Label("Enter Total Minutes Worked: "); 
     Label lblEnterHours = new Label("Enter Hourly Pay Rate: "); 
     Label lblHoursWorked = new Label("Hours Worked:"); 
     Label lblLeftOver = new Label("Leftover Miutes:"); 
     Label lblWeekPay = new Label("Weekly Pay:"); 

     Label hoursWorked = new Label(" "); 
     Label leftoverMins = new Label(" "); 
     Label weeklyPay = new Label(" "); 

     TextField txtMinutes = new TextField(10); 
     TextField txtRate = new TextField(10); 


    Button btnPay = new Button("Weekly Pay"); 
    Button btnClear = new Button("Clear"); 
    Button btnExit=new Button("Exit"); 


    //Panels 

    Panel pnlCenter = new Panel(); 
    Panel pnlSouth = new Panel(); 
    Panel pnlNorth = new Panel(); 

     //Grids 
    GridLayout gridLay1 = new GridLayout(1,3); 


     public void init() { 
     // add the displayable objects; 
     add("Center", pnlCenter); 
     pnlCenter.setLayout(gridLay1); 
     pnlCenter.add(title1); 
     pnlCenter.add(title2); 
     add(lblEnterMins); 
     add(txtMinutes); 
     add(lblEnterHours); 
     add(txtRate); 

     add(btnPay); 
     add(btnClear); 
     add(btnExit); 

     add(lblHoursWorked); 
     add(hoursWorked); 
     add(lblLeftOver); 
     add(leftoverMins); 
     add(lblWeekPay); 
     add(weeklyPay); 




    //Attach event to Button 
     btnPay.addActionListener(this); 
     btnClear.addActionListener(this); 
     btnExit.addActionListener(this); 

    } 

    public void paint(Graphics g) { 
     //Draw any pictures 
     //Make sure the picture is in the same directory as the .class files 


    } 

    public void actionPerformed(ActionEvent e) { 
    //This method will fire when button is pressed 
    //define temporary variables 

    Integer hour = 60; 
    Double dblWeeklyPay; 
    Integer intLeftOvers; 
    Integer inthoursWorked; 



    Integer intMinutes = Integer.parseInt(txtMinutes.getText()); 
    Double dblRate = Double.parseDouble(txtRate.getText()); 

    inthoursWorked = intMinutes/hour; 

    intLeftOvers = 600 - intMinutes; 


    dblWeeklyPay = (intMinutes/hour) * dblRate; 



hoursWorked.setText(inthoursWorked); 
leftoverMins.setText(intLeftOvers); 
weeklyPay.setText(dblWeeklyPay); 




    } 

} 
+0

我建議你學習Swing而不是AWT。 Swing組件以「J」開始。而且,學習佈局管理器的唯一方法就是和他們一起玩。我們無法爲您編寫代碼,因爲我們不知道您希望佈局如何。佈局經理的關鍵是你可以在每個面板上使用不同的面板。 – camickr 2011-05-07 02:12:26

回答

2

那麼說到佈局讀取Using Layout Managers將是一個好的開始。我個人喜歡使用GridBagLayout,因爲它給了你很多控制權,但根據你的需要它可能會過度。

但是,如果你覺得它太令人生畏,你總是可以使用NetbeansEclipse(日食是更開源的和我最喜歡的)來可視化地設計你的GUI。

+2

+1,用於推薦使用佈局管理器並提供鏈接。 -1/2,用於在學習GUI編碼時推薦代碼生成。 :) – 2011-05-07 00:15:38

+2

是的,我同意。我的懶惰方式將是我的結局。在理解基礎知識之後,您應該只使用代碼生成工具。如果你不明白代碼...這是所有的卡片屋 – gruntled 2011-05-07 00:17:52

+0

好吧,我會離開我的+1站立,並會撤回我的-1/2! :) – 2011-05-07 00:21:39