2011-05-07 88 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