GUI not appearing at first
Hi,
My friend keeps having a weird problem with his GUI, when it runs, a window appears but it appears empty until you resize, or maximize the box. Does anybody know what is going on?
Thanks
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.*;
import java.io.*;
import javax.swing.*;
publicclass RomanNumeralextends JFrame{
private JButton convertButton;
private JLabel arabicLabel, romanLabel;
private JTextField arabicTextField, romanTextField;
public RomanNumeral()
{
GUI();
}
publicvoid GUI()
{
Container contentPane = getContentPane();
contentPane.setLayout(null );
contentPane.setBackground(Color.WHITE);
convertButton =new JButton();
convertButton.setBounds(95, 95, 150, 30);
convertButton.setText("Convert");
convertButton.setVisible(true);
contentPane.add(convertButton);
convertButton.addActionListener(
new ActionListener()// anonymous inner class
{
// event handler called when convertJButton is pressed
publicvoid actionPerformed ( ActionEvent event )
{
convert();
}
});
arabicTextField =new JTextField();
arabicTextField.setBounds(202, 55, 45, 30);
arabicTextField.setEditable(true);
contentPane.add (arabicTextField);
arabicLabel =new JLabel();
arabicLabel.setBounds(95, 55, 100, 25);
arabicLabel.setText("Arabic Numeral");
contentPane.add(arabicLabel);
romanTextField =new JTextField();
romanTextField.setBounds(150, 140, 200, 30);
romanTextField.setEditable(false);
contentPane.add(romanTextField);
romanLabel =new JLabel();
romanLabel.setBounds(45, 140, 100, 25);
romanLabel.setText("Roman Numeral");
contentPane.add(romanLabel);
setTitle("Arabic to Roman Numeral Converter");
setVisible(true );
contentPane.setVisible(true);
setSize( 400, 300 );
}
privatevoid convert()
{
romanTextField.setText("");
int value=0;
int number=0;
int error = 0;
StringBuffer result=new StringBuffer();
try{
value =Integer.parseInt( arabicTextField.getText());
number = value;}
catch(NumberFormatException exception){System.out.print("error");error=1;JOptionPane.
showMessageDialog(null,"Remember, 1-5000, Check Input","Check Input", JOptionPane.ERROR_MESSAGE);};
if(error == 0)
{
if (number <1||number>5000)
{
error = 1; JOptionPane.showMessageDialog(null,"Check Input","Invalid Input",
JOptionPane.ERROR_MESSAGE);
}
int thousand= number/1000;
switch (thousand)
{
case 0: result.append("");
break;
case 1: result.append("M");
break;
case 2: result.append("MM");
break;
case 3: result.append("MMM");
break;
case 4: result.append("IV(line above)");
break;
case 5: result.append("V(line above)");
break;
default:result.append("");
break;
}
System.out.print(result);
System.out.print("\n");
number-= thousand*1000;
int hundred = number/100;
switch (hundred)
{
case 0: result.append("");
break;
case 1: result.append("C");
break;
case 2: result.append("CC");
break;
case 3: result.append("CCC");
break;
case 4: result.append("CD");
break;
case 5: result.append("D");
break;
case 6: result.append("DC");
break;
case 7: result.append("DCC");
break;
case 8: result.append("DCCC");
break;
case 9: result.append("CM");
break;
default: result.append("");
}
System.out.print(result+"\n");
number-= hundred*100;
int ten = number/10;
switch (ten)
{
case 0: result.append("");
break;
case 1: result.append("X");
break;
case 2: result.append("XX");
break;
case 3: result.append("XXX");
break;
case 4: result.append("XL");
break;
case 5: result.append("L");
break;
case 6: result.append("LX");
break;
case 7: result.append("LXX");
break;
case 8: result.append("LXXX");
break;
case 9: result.append("XC");
break;
default: result.append("");
}
System.out.print(result+"\n");
number -= ten*10;
switch (number)
{
case 0: result.append("");
break;
case 1: result.append("I");
break;
case 2: result.append("II");
break;
case 3: result.append("III");
break;
case 4: result.append("IV");
break;
case 5: result.append("V");
break;
case 6: result.append("VI");
break;
case 7: result.append("VII");
break;
case 8: result.append("VIII");
break;
case 9: result.append("IX");
break;
default: result.append("");
break;
}
System.out.print(result+"\n");
}
System.out.print(result+"\n");
if(error == 0)
{
romanTextField.setText(result.toString());
}
}
publicstaticvoid main( String[] args )
{
RomanNumeral application =new RomanNumeral();
application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
}

