2014-02-15 3 views
0

У меня есть странная проблема (?). Я делаю простой графический интерфейс, и когда я добавляю JTextField (прокомментировал), некоторые компоненты исчезают. Я не знаю почему. Кроме того, иногда, когда я играю в своем графическом интерфейсе, некоторые компоненты исчезают случайно (первая игра, некоторые кнопки исчезают, вторая игра - некоторые метки исчезают), это так странно! Любые идеи почему?Broken GUI после добавления JTextField

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 

    } 

} 

ответ

0

Сначала добавьте свои компоненты, чем сделайте рамку видимой. В конструкторе у вас есть setVisible (true), удалите его. OFFTOPIC: И используйте Layoutmanagers, а не «Null-Layout».

+0

THx !!!! много :) – user3196130

1
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 

} 

} 

Вы перезапись компонента Таким образом, что перезапись я исправлена ​​ошибка вашего кода

+0

Thx man !!!!!!!!! – user3196130

Смежные вопросы