Reputation: 31
i have a strange(?) problem . I'm making a simple GUI and when i add a JTextField (commented ) some components dissappear . I don't know why . Furthermore , sometimes when i play my GUI some components dissappear randomly ( first play, some buttons dissappear , second play - some labels dissappear ) it's so strange ! Any ideas why ?
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class matchWindow extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
private JTextField tAttack;
public matchWindow(){
setTitle("Match");
setSize(960, 720);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
setLayout(null);
JLabel lPlayers = new JLabel("Players list");
lPlayers.setBounds(50, 10, 100, 30);
lPlayers.setVisible(true);
add(lPlayers);
JLabel lAction = new JLabel("Action list");
lAction.setBounds(250, 10, 100, 30);
lAction.setVisible(true);
add(lAction);
JLabel lStats = new JLabel("Player statistics");
lStats.setBounds(650, 10, 100, 30);
lStats.setVisible(true);
add(lStats);
JLabel lAttack = new JLabel("Attack");
lAttack.setBounds(175, 45, 50, 30);
lAttack.setVisible(true);
add(lAttack);
JLabel lAttackPrec = new JLabel("Attack");
lAttackPrec.setBounds(550, 45, 50, 30);
lAttackPrec.setVisible(true);
add(lAttackPrec);
//tAttack = new JTextField();
//tAttack.setBounds(550, 75, 50, 30);
//tAttack.setVisible(true);
//add(tAttack);
JLabel lDefense = new JLabel("Defense");
lDefense.setBounds(230, 45, 60, 30);
lDefense.setVisible(true);
add(lDefense);
JLabel lDefensePrec = new JLabel("Defense");
lDefensePrec.setBounds(620, 45, 60, 30);
lDefensePrec.setVisible(true);
add(lDefensePrec);
JLabel lServe = new JLabel("Serve");
lServe.setBounds(300, 45, 50, 30);
lServe.setVisible(true);
add(lServe);
JLabel lServePrec = new JLabel("Serve");
lServePrec.setBounds(690, 45, 50, 30);
lServePrec.setVisible(true);
add(lServePrec);
JLabel lBlock = new JLabel("Block");
lBlock.setBounds(355, 45, 50, 30);
lBlock.setVisible(true);
add(lBlock);
JButton bY1 = new JButton("Y");
bY1.setBounds(160, 75, 25, 25);
bY1.setVisible(true);
add(bY1);
JButton bN1 = new JButton("N");
bN1.setBounds(190, 75, 25, 25);
bN1.setVisible(true);
add(bN1);
JButton bY2 = new JButton("Y");
bY2.setBounds(225, 75, 25, 25);
bY2.setVisible(true);
add(bY2);
JButton bN2 = new JButton("N");
bN2.setBounds(255, 75, 25, 25);
bN2.setVisible(true);
add(bN2);
JButton bY3 = new JButton("Y");
bY3.setBounds(290, 75, 25, 25);
bY3.setVisible(true);
add(bY3);
JButton bN3 = new JButton("N");
bN3.setBounds(320, 75, 25, 25);
bN3.setVisible(true);
add(bN3);
JButton bY4 = new JButton("Y");
bY4.setBounds(350, 75, 25, 25);
bY4.setVisible(true);
add(bY4);
JButton bN4 = new JButton("N");
bN4.setBounds(380, 75, 25, 25);
bN4.setVisible(true);
add(bN4);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
matchWindow window = new matchWindow();
window.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}
Upvotes: 0
Views: 118
Reputation: 2286
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class matchWindow extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
private JTextField tAttack;
public matchWindow(){
setTitle("Match");
setSize(960, 720);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
setLayout(null);
JLabel lPlayers = new JLabel("Players list");
lPlayers.setBounds(50, 10, 100, 30);
lPlayers.setVisible(true);
add(lPlayers);
JLabel lAction = new JLabel("Action list");
lAction.setBounds(250, 10, 100, 30);
lAction.setVisible(true);
add(lAction);
JLabel lStats = new JLabel("Player statistics");
lStats.setBounds(650, 10, 100, 30);
lStats.setVisible(true);
add(lStats);
JLabel lAttack = new JLabel("Attack");
lAttack.setBounds(175, 45, 50, 30);
lAttack.setVisible(true);
add(lAttack);
JLabel lAttackPrec = new JLabel("Attack");
lAttackPrec.setBounds(550, 45, 50, 30);
lAttackPrec.setVisible(true);
add(lAttackPrec);
tAttack = new JTextField();
tAttack.setBounds(500, 75, 50, 30);
tAttack.setVisible(true);
add(tAttack);
JLabel lDefense = new JLabel("Defense");
lDefense.setBounds(230, 45, 60, 30);
lDefense.setVisible(true);
add(lDefense);
JLabel lDefensePrec = new JLabel("Defense");
lDefensePrec.setBounds(620, 45, 60, 30);
lDefensePrec.setVisible(true);
add(lDefensePrec);
JLabel lServe = new JLabel("Serve");
lServe.setBounds(300, 45, 50, 30);
lServe.setVisible(true);
add(lServe);
JLabel lServePrec = new JLabel("Serve");
lServePrec.setBounds(690, 45, 50, 30);
lServePrec.setVisible(true);
add(lServePrec);
JLabel lBlock = new JLabel("Block");
lBlock.setBounds(355, 45, 50, 30);
lBlock.setVisible(true);
add(lBlock);
JButton bY1 = new JButton("Y");
bY1.setBounds(160, 75, 25, 25);
bY1.setVisible(true);
add(bY1);
JButton bN1 = new JButton("N");
bN1.setBounds(190, 75, 25, 25);
bN1.setVisible(true);
add(bN1);
JButton bY2 = new JButton("Y");
bY2.setBounds(225, 75, 25, 25);
bY2.setVisible(true);
add(bY2);
JButton bN2 = new JButton("N");
bN2.setBounds(255, 75, 25, 25);
bN2.setVisible(true);
add(bN2);
JButton bY3 = new JButton("Y");
bY3.setBounds(290, 75, 25, 25);
bY3.setVisible(true);
add(bY3);
JButton bN3 = new JButton("N");
bN3.setBounds(320, 75, 25, 25);
bN3.setVisible(true);
add(bN3);
JButton bY4 = new JButton("Y");
bY4.setBounds(350, 75, 25, 25);
bY4.setVisible(true);
add(bY4);
JButton bN4 = new JButton("N");
bN4.setBounds(380, 75, 25, 25);
bN4.setVisible(true);
add(bN4);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
matchWindow window = new matchWindow();
window.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}
You are over writing Component That way that is overwriting i am fixed problem of your code
Upvotes: 1
Reputation: 2095
First add your components than make the frame visible. In the constructor you have a setVisible(true) delete it. OFFTOPIC: And use Layoutmanagers not "Null-Layout".
Upvotes: 0