|
|
Welcome to the Java Forums.
You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community, you will:
- have access to post topics
- communicate privately with other members (PM)
- not see advertisements between posts
- have the possibility to earn one of our surprises if you are an active member
- access many other special features that will be introduced later.
Registration is fast, simple and absolutely free so please, join our community today!
If you have any problems with the registration process or your account login, please contact us.
|
|

05-08-2008, 10:00 PM
|
|
Member
|
|
Join Date: Apr 2008
Posts: 11
|
|
|
JOptionPane Display Difficulties
Hello to all
I am trying to practice with arrays and GUI's using joptionpanes or boxes as well.
I am having difficulty with viewing the resulting windows. If you enter 5 as the size of the array then the window should print 5 4 3 2 1 in the messagebox but instead it freezes after I enter 5 and nothing happens, also if I just use the CMD to deliver the message "Please enter the size of the array: " then it works but I have to select ok 5 seperate times for each number instead of one box displaying 5 4 3 2 1.
How can I fix this. Here is the code that I made
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.JOptionPane;
public class array{
static Scanner console = new Scanner(System.in);
JFrame frame;
public array(){
frame = new JFrame("Array");
JButton button = new JButton("Enter Here");
button.addActionListener(new MyAction());
frame.add(button);
frame.setSize(400, 400);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public class MyAction implements ActionListener{
public void actionPerformed(ActionEvent e){
JOptionPane.showInputDialog(null, "" + "Enter the size of the array: ");
int arraySize;
arraySize = console.nextInt();
int[] list = new int[arraySize];
for (arraySize = 0; arraySize < list.length; arraySize++)
if (arraySize == 0) continue;
else
JOptionPane.showMessageDialog(frame, "" + arraySize + " " +
"is your number", "Your Silly Numbers",
JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(frame, "" + list.length + " " +
"is your number", "Your Silly Numbers",
JOptionPane.INFORMATION_MESSAGE);
}
}
public static void main(String[] args){
array db = new array();
}
}
|
|

05-08-2008, 10:31 PM
|
|
Senior Member
|
|
Join Date: Jul 2007
Posts: 910
|
|
This blocks input at the console
int arraySize = console.nextInt();
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class AnArrayTest {
Scanner console = new Scanner(System.in);
JFrame frame;
public AnArrayTest() {
frame = new JFrame("Array");
JButton button = new JButton("Enter Here");
button.addActionListener(new MyAction());
JPanel panel = new JPanel();
panel.add(button);
frame.add(panel);
frame.setSize(400, 400);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public class MyAction implements ActionListener{
public void actionPerformed(ActionEvent e){
String input = JOptionPane.showInputDialog(null,
"Enter the size of the array: ");
int arraySize = //console.nextInt();
Integer.parseInt(input.trim());
int[] list = new int[arraySize];
for (int arrayIndex = 0; arrayIndex < list.length; arrayIndex++) {
list[arrayIndex] = arraySize - arrayIndex;
}
String values = Arrays.toString(list);
JOptionPane.showMessageDialog(frame, values + " " +
"is your number", "Your Silly Numbers",
JOptionPane.INFORMATION_MESSAGE);
}
}
public static void main(String[] args){
new AnArrayTest();
}
}
|
|

05-09-2008, 04:13 AM
|
|
Member
|
|
Join Date: Apr 2008
Posts: 11
|
|
|
JOptionPane Display Difficulties
Thank you this worked well. i understand everything you did except this statement in the code
String values = Arrays.toString(list);
Also can I get the lines to print after 45 numbers on a new line. I am going to look this up and if I figure it out before someone posts I will post my findings.
Thanks
|
|

05-09-2008, 05:08 AM
|
|
Member
|
|
Join Date: Apr 2008
Posts: 11
|
|
|
JOptionPane Display Difficulties
This is what I changed. it compiles, but I am still not able to start a new line after 40 numbers show.
public class MyAction implements ActionListener{
public void actionPerformed(ActionEvent e){
String input = JOptionPane.showInputDialog(null,
"Enter the size of the array: ");
int arraySize = //console.nextInt();
Integer.parseInt(input.trim());
int[] list = new int[arraySize];
for (int arrayIndex = 0; arrayIndex < list.length; arrayIndex++){
list[arrayIndex] = arraySize - arrayIndex;}
values = Arrays.toString(list);
if ((arraySize - 0 + 1) % 40 != 0)
JOptionPane.showMessageDialog(frame, values + " " +
"are your numbers", "Your Silly Numbers",
JOptionPane.INFORMATION_MESSAGE);
}
}
|
|

05-09-2008, 05:44 AM
|
 |
Moderator
|
|
Join Date: Jul 2007
Location: Colombo, Sri Lanka
Posts: 1,136
|
|
Originally Posted by kewlgeye
String values = Arrays.toString(list);
It's the string representation of the array specified.
__________________
Use an appropriate Subject. "Help, urgent!" isn't one.
Want to make your IDE the best? Vote Now
|
|

05-09-2008, 06:25 AM
|
 |
Moderator
|
|
Join Date: Jul 2007
Location: Colombo, Sri Lanka
Posts: 1,136
|
|
|
Ok, everything is start from the user input size. Say the input is 45. What you want to do is, display 40 in one line and remain 5 is in the next line.
You try it in some way, what you want to do is do the same process for different sizes. Got it?
__________________
Use an appropriate Subject. "Help, urgent!" isn't one.
Want to make your IDE the best? Vote Now
|
|

05-09-2008, 08:13 PM
|
|
Member
|
|
Join Date: Apr 2008
Posts: 11
|
|
|
if ((arraySize - 0 + 1) % 40 != 0)
This is the only thing that I know how to do in order to accomplish my goal. I read this off of a site, that is the if statement above.
I don't know how to get it to print to the next line after 40 number. I thought that the statement above did this and my placement of it was ok. This is where I need help. Either showing me, or a link that shows how to accomplish this within a JOptionPaneShowMessage window.
|
|

05-09-2008, 09:09 PM
|
|
Senior Member
|
|
Join Date: Jul 2007
Posts: 910
|
|
"arraySize" is a constant.
int arraySize = Integer.parseInt(input.trim());
int[] list = new int[arraySize];
for (int i = 0; i < list.length; i++) {
list[i] = i+1;
}
String values = "";
for(int i = 0; i < list.length; i++) {
values += list[i];
if(i < list.length-1)
values += ", ";
if((i + 1) % 40 == 0)
values += "\n";
}
JOptionPane.showMessageDialog(frame, values + " " +...
|
|
| Thread Tools |
|
|
| Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
|
|