Removing and adding a new image in a JPanel
807607Jan 9 2007 — edited Jan 9 2007Im having difficulty resetting the image in my JPanel. I can get it to become invisible but not remove it or add a new one. Here is the code for the entire program but the problem is only contained in the classes usmap and Window
import javax.swing.JFrame;
class Driver {
public static void main(String args[]){
// Window to control score
Window myScore = new Window();
myScore.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myScore.setSize(250,250);
myScore.setLocation(700,100);
myScore.setVisible(true);
/*Score myAnswer = new Score();
myAnswer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myAnswer.setSize(250,250);
myAnswer.setLocation(700,400);
myAnswer.setVisible(true);*/
usmap myusmap = new usmap();
myusmap.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
myusmap.setSize(600,425);
myusmap.setLocation(50,100);
myusmap.setVisible(true);
}
}
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.FlowLayout;
import javax.swing.JTextField;
import javax.swing.JLabel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class Score extends JFrame{
private JButton B1;
public JTextField T3;
public JTextField T4;
private JLabel L1;
private JLabel L2;
public Score(){
super("Score");
setLayout(new FlowLayout());
T3 = new JTextField("",20);
T4 = new JTextField("",20);
L1 = new JLabel("State Score");
L2 = new JLabel("Capital Score");
add(L1);
add(T3);
add(L2);
add(T4);
}
}
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.FlowLayout;
import javax.swing.JTextField;
import javax.swing.JLabel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.SwingConstants;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import java.util.Random;
public class usmap extends JFrame{
int x;
String S;
String c;
static int random;
Random States = new Random();
static JLabel US1;
private JButton B1;
private JTextField T1;
private JTextField T2;
public usmap(){
super("U.S. Map");
setLayout(new FlowLayout());
addImage();
}
public void addImage(){
random = States.nextInt(49);
Icon Map = new ImageIcon(getClass().getResource(myList[random][0] + ".png") );
US1 = new JLabel(Map);
add(US1);
}
public static int returnRandom(){
return random;
}
String myList[][] = {
{"Alabama","Birmingham"},
{"Alaska","Juneau"},
{"Arizona","Phoenix"},
{"Arkansas","Little Rock"},
{"California","Sacramento"},
{"Colorado","Denver"},
{"Connecticut","Hartford"},
{"Delaware","Dover"},
{"Florida","Tallahassee"},
{"Georgia","Atlanta"},
{"Hawaii","Honolulu"},
{"Idaho","Boise"},
{"Illinois","Springfield"},
{"Indiana","Indianapolis"},
{"Iowa","Des Moines"},
{"Kansas","Topeka"},
{"Kentucky","Frankfort"},
{"Louisiana","Baton Rouge"},
{"Maine","Augusta"},
{"Maryland","Annapolis"},
{"Massachusetts","Boston"},
{"Michigan","Lansing"},
{"Minnesota","St. Paul"},
{"Mississippi","Jackson"},
{"Missouri","Jefferson City"},
{"Montana","Helena"},
{"Nebraska","Lincoln"},
{"Nevada","Carson City"},
{"New Hampshire","Concord"},
{"New Jersey","Trenton"},
{"New Mexico","Santa Fe"},
{"New York","Albany"},
{"North Carolina","Raleigh"},
{"North Dakota","Bismarck"},
{"Ohio","Columbus"},
{"Oklahoma","Oklahoma City"},
{"Oregon","Salem"},
{"Pennsylvania","Harrisburg"},
{"Rhode Island","Providence"},
{"South Carolina","Columbia"},
{"South Dakota","Pierre"},
{"Tennessee","Nashville"},
{"Texas","Austin"},
{"Utah","Salt Lake City"},
{"Vermont","Montpelier"},
{"Virginia","Richmond"},
{"Washington","Olympia"},
{"West Virginia","Charleston"},
{"Wisconsin","Madison"},
{"Wyoming","Cheyenne"}
};
}
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.FlowLayout;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.Icon;
import java.util.Random;
import javax.swing.ImageIcon;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class Window extends JFrame{
int counter = 0;
int x;
private JButton B1;
static int random;
Random States = new Random();
private JTextField T1;
private JTextField T2;
private JLabel L1;
private JLabel L2;
private JLabel L3;
private JLabel US1;
public int S = 0;
public int C = 0;
Score myAnswer;
public Window(){
super("State and Capital Test");
random = States.nextInt(49);
setLayout(new FlowLayout());
B1 = new JButton("Enter");
T1 = new JTextField("",20);
T2 = new JTextField("",20);
L1 = new JLabel("Enter State");
L2 = new JLabel("Enter Capital");
L3 = new JLabel(" NO SPACES BEFORE ENTRIES");
add(L1);
add(T1);
add(L2);
add(T2);
add(B1);
add(L3);
PBactionListener handler = new PBactionListener();
B1.addActionListener(handler);
myAnswer = new Score();
myAnswer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myAnswer.setSize(250,250);
myAnswer.setLocation(700,400);
myAnswer.setVisible(true);
}
public String myList[][] = {
{"Alabama","Montgomery"},
{"Alaska","Juneau"},
{"Arizona","Phoenix"},
{"Arkansas","Little Rock"},
{"California","Sacramento"},
{"Colorado","Denver"},
{"Connecticut","Hartford"},
{"Delaware","Dover"},
{"Florida","Tallahassee"},
{"Georgia","Atlanta"},
{"Hawaii","Honolulu"},
{"Idaho","Boise"},
{"Illinois","Springfield"},
{"Indiana","Indianapolis"},
{"Iowa","Des Moines"},
{"Kansas","Topeka"},
{"Kentucky","Frankfort"},
{"Louisiana","Baton Rouge"},
{"Maine","Augusta"},
{"Maryland","Annapolis"},
{"Massachusetts","Boston"},
{"Michigan","Lansing"},
{"Minnesota","St. Paul"},
{"Mississippi","Jackson"},
{"Missouri","Jefferson City"},
{"Montana","Helena"},
{"Nebraska","Lincoln"},
{"Nevada","Carson City"},
{"New Hampshire","Concord"},
{"New Jersey","Trenton"},
{"New Mexico","Santa Fe"},
{"New York","Albany"},
{"North Carolina","Raleigh"},
{"North Dakota","Bismarck"},
{"Ohio","Columbus"},
{"Oklahoma","Oklahoma City"},
{"Oregon","Salem"},
{"Pennsylvania","Harrisburg"},
{"Rhode Island","Providence"},
{"South Carolina","Columbia"},
{"South Dakota","Pierre"},
{"Tennessee","Nashville"},
{"Texas","Austin"},
{"Utah","Salt Lake City"},
{"Vermont","Montpelier"},
{"Virginia","Richmond"},
{"Washington","Olympia"},
{"West Virginia","Charleston"},
{"Wisconsin","Madison"},
{"Wyoming","Cheyenne"}
};
private class PBactionListener implements ActionListener{
public void actionPerformed(ActionEvent E){
if(counter < 50){
x = usmap.returnRandom();
if(T1.getText().toLowerCase().equals(myList[x][0].toLowerCase())){
T1.requestFocus();
T1.selectAll();
S++;
myAnswer.T3.setText(S + "/50");
myAnswer.T3.setEditable(false);
//setLayout(new FlowLayout());
}
else{
myAnswer.T3.setText("Wrong");
myAnswer.T3.setEditable(false);
}
if(T2.getText().toLowerCase().equals(myList[x][1].toLowerCase())){
T2.requestFocus();
T2.selectAll();
C++;
myAnswer.T4.setText(C + "/50");
}
else{
myAnswer.T4.setText("Wrong");
}
x = States.nextInt(49);
myAnswer.T3.setEditable(false);
myAnswer.T4.setEditable(false);
T1.requestFocus();
T1.selectAll();
}
counter = counter + 1;
usmap.US1.setVisible(false);
usmap.removeAll();
repaint();
remove(usmap.US1);
//usmap.addImage();
Icon Map = new ImageIcon(getClass().getResource(myList[1][0] + ".png") );
US1 = new JLabel(Map);
add(US1);
//usmap.US1.setVisible(true);
}
}
}