Comp Sci Solve Java JLabel Problem: Display Output on mainPanel

  • Thread starter Thread starter clook
  • Start date Start date
  • Tags Tags
    Java
AI Thread Summary
The discussion centers on a Java JLabel issue where output labels are not displaying in the mainPanel of a shipping charge application. The user has created individual JLabels for package ID, weight, and shipping cost but is unable to see them after calculation. Suggestions include checking for layout management issues that may affect label visibility and considering the use of NetBeans for easier GUI design. The importance of refreshing the panel or revalidating it after adding new components is also highlighted. Properly managing the GUI components is essential for ensuring that the output is displayed correctly.
clook
Messages
32
Reaction score
0
i am trying to display the output in a jlabel. I have created individual jlabels for the package ID, weight, and shipping cost and tried to display them with the mainPanel:

Code:
import javax.swing.*;

import java.awt.event.*;
public class shippingCharge extends JFrame implements ActionListener
{

	//objects and data types created here
	JPanel mainPanel = new JPanel();
	JTextField packageIdentificationTextField = new JTextField(6);
	JTextField poundsTextField = new JTextField(10);
	JTextField ouncesTextField = new JTextField(10);
	JButton displayButton = new JButton("Calculate  ");
	
	
	//Variables
	String packageIdentificationString;
	double poundDouble, ouncesDouble, poundToOunceOuncesDouble, shippingCostDouble;	public static void main(String[] args)
	{
		shippingCharge shippingTotal = new shippingCharge();
	}
		
	public shippingCharge()
	{
		designFrame();
		setSize(500,500);
		setVisible(true);
		
	}
	
	public void designFrame()
	{
		mainPanel.add(new JLabel("Package ID"));
		mainPanel.add(packageIdentificationTextField);
		mainPanel.add(new JLabel("Pounds"));
		mainPanel.add(poundsTextField);
		mainPanel.add(new JLabel("Ounces"));
		mainPanel.add(ouncesTextField);
		mainPanel.add(displayButton);
		
		
        add(mainPanel);
		//add listener to the  object
        packageIdentificationTextField.addActionListener(this);
		displayButton.addActionListener(this);
		
	}
	
	public void getInput()
	{
		packageIdentificationString = packageIdentificationTextField.getText();
		poundDouble = Double.parseDouble(poundsTextField.getText()); 
		ouncesDouble = Double.parseDouble(ouncesTextField.getText());
		
	}
	
	public void calculateShipping()
	{
		final double SHIPPING_RATE = .12;
		final double OUNCES_PER_POUND = 16;
		poundToOunceOuncesDouble = poundDouble * OUNCES_PER_POUND;
		shippingCostDouble = (poundToOunceOuncesDouble + ouncesDouble) * SHIPPING_RATE;
		
	}

	public void actionPerformed(ActionEvent evt)
	{
		getInput();
		calculateShipping();
		displayOutput();
		
		
	}
	
	public void displayOutput()
	{
		
	mainPanel.add(new JLabel("Package ID:" + packageIdentificationString));
        mainPanel.add(new JLabel("Weight:" + poundDouble + "lbs" + ouncesDouble + "oz."));
        mainPanel.add(new JLabel("Shipping Cost:" + shippingCostDouble));
	
			
	}
}

here is the code but the output labels aren't showing up. what gives? does it have something to do with positioning?
 
Last edited:
Physics news on Phys.org
Have you tried NetBeans?? You can graphically make the applet/gui of the program you are writing, it is a lot easier than just writing code. All you have to do is make it and add functionality to the buttons.
 

Similar threads

Replies
5
Views
4K
Replies
9
Views
3K
Replies
3
Views
3K
Replies
3
Views
13K
Replies
6
Views
2K
Back
Top