Updating a JLabel with an integer array

  • Thread starter Thread starter ProPatto16
  • Start date Start date
  • Tags Tags
    Array Integer
AI Thread Summary
To update a JLabel array with digits from an integer array in Java, convert the random number to a string and extract each digit to set the text of each JLabel using the JLabel.setText method. The discussion highlights the need for repetitive code when updating properties like color and font size for each label. A suggestion is made to encapsulate the label property settings in a method to reduce redundancy. This approach allows for cleaner code and easier maintenance by looping through the JLabel array. Overall, the conversation emphasizes efficient coding practices in Java when working with GUI components.
ProPatto16
Messages
323
Reaction score
0
halfway through my code so its a bit of mess but this is simple what i need to do.

I have a JLabel array of 6 labels.

a random number is generated, its then split into its digits into a 6 element array of integers. now i need to update the Jlabels with the integer array of digits.

my JLabel declaration is

odometer = new JLabel[ 6 ]; // create array for odometer digits
odometerJPanel = new JPanel();
for ( int count = 0; count < odometer.length; count ++)
{
odometer[ count ] = new JLabel( " 0 " );
odometerJPanel.add( odometer[ count ] ); // add odometer to JPanel
}

so initially the labels are all 0.
i have another array filled with the digits i want to put onto the JLabels.
How?

Thanks in advance
 
Physics news on Phys.org
ProPatto16 said:
halfway through my code so its a bit of mess but this is simple what i need to do.

I have a JLabel array of 6 labels.

a random number is generated, its then split into its digits into a 6 element array of integers. now i need to update the Jlabels with the integer array of digits.

my JLabel declaration is

odometer = new JLabel[ 6 ]; // create array for odometer digits
odometerJPanel = new JPanel();
for ( int count = 0; count < odometer.length; count ++)
{
odometer[ count ] = new JLabel( " 0 " );
odometerJPanel.add( odometer[ count ] ); // add odometer to JPanel
}

so initially the labels are all 0.
i have another array filled with the digits i want to put onto the JLabels.
How?

Thanks in advance

Convert the random number to a string, then peel of the digits one by one and put each one in the appropriate JLabel. Am I correct in assuming you are writing Java code?
 
Use the JLabel.setText method perhaps?
 
That's what I ended up doing. But to use the set text method it needs to be applied individually to each index of the array. So I have like 30 lines of code to set the number, colour and font size. Just means its a lot of repetitive code. I was looking for a way to do it using the array directly but seems most methods can't be applied to arrays, only Ints and strings. And yeah writing java. Thanks guys (:
 
Sound like you could benefit from moving the code that sets the properties of each JLabel into a loop (if the "source" data is also stored in arrays) or at least method, like the setMyLabel example method below.

Code:
public void setMyLabel(JLabel label, String text, Color color, float pt) {
  label.setText(text);
  label.setForeground(color);
  label.setFont(label.getFont().deriveFont(pt));
}


JLabel[] labels = ...
...
setMyLabel(labels[0], "first", Color.RED, 12);
setMyLabel(labels[1], "second", Color.GREEN, 10);
...
 

Similar threads

Replies
1
Views
2K
Replies
21
Views
3K
Replies
2
Views
2K
Replies
8
Views
13K
Replies
3
Views
3K
Replies
9
Views
3K
Back
Top