2017-10-31 3 views
0

したがって、2番目のJPanelにコンポーネントを追加すると、この問題が発生します。コンポーネントが2番目に表示されないJPanel

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.swing.border.*; 

public class TestSeleccionJugadores2 extends JPanel { 
JPanel jpJugador1 = new JPanel(); 
JPanel jpJugador2 = new JPanel(); 

TitledBorder titledBorder1 = new TitledBorder("Jugador 1"); 
TitledBorder titledBorder2 = new TitledBorder("Jugador 2"); 

Font font1 = new Font("Microsoft JhengHei UI Light", Font.PLAIN + Font.BOLD, 14); 
Font font2 = new Font("Microsoft JhengHei UI Light", Font.PLAIN, 13); 

JLabel jlJ1 = new JLabel("Es un(a)"); 
JLabel jlJ2 = new JLabel("Es un(a)"); 
JLabel jlJ1Nombre = new JLabel("llamada(o)"); 
JLabel jlJ2Nombre = new JLabel("llamada(o)"); 

JComboBox<String> opciones1 = new JComboBox<>(new String[] {"Hombre", "Mujer", "Otro"}); 
JComboBox<String> opciones2 = new JComboBox<>(new String[] {"Hombre", "Mujer", "Otro"}); 

JTextField nombreJ1 = new JTextField("Jugador 1", 5); 
JTextField nombreJ2 = new JTextField("Jugador 2", 5); 

public TestSeleccionJugadores2() { 

jpJugador1.setLayout(null); 
jpJugador2.setLayout(null); 
setLayout(null); 

jpJugador1.setBounds(10, 25, 200, 100); 
jpJugador2.setBounds(10, 120, 200, 100); 
setBounds(0,0,300, 300); 

titledBorder1.setTitleFont(font1); 
titledBorder2.setTitleFont(font1); 

jpJugador1.setBorder(titledBorder1); 
jpJugador2.setBorder(titledBorder2); 

opciones1.setSelectedItem("Otro"); 
opciones2.setSelectedItem("Otro"); 

jlJ1.setBounds(10, 30, 80, 20); 
opciones1.setBounds(95, 30, 80, 20); 
jlJ1Nombre.setBounds(10, 55, 80, 20); 
nombreJ1.setBounds(95, 55, 80, 20); 

//These are showing in both JPanels. 
jlJ2.setBounds(10, 125, 80, 20); 
opciones2.setBounds(95, 125, 80, 20); 
jlJ2Nombre.setBounds(10, 155, 80, 20); 
nombreJ2.setBounds(95, 155, 80, 20); 

//Second components. 
jpJugador2.add(jlJ2); 
jpJugador2.add(opciones2); 
jpJugador2.add(jlJ2Nombre); 
jpJugador2.add(nombreJ2); 

jpJugador1.add(jlJ1); 
jpJugador1.add(opciones2); 
jpJugador1.add(jlJ1Nombre); 
jpJugador1.add(nombreJ1); 

add(jpJugador2); 
add(jpJugador1); 

} 

} 

秒数のコンポーネントがJPanelに表示されません。最初のJPanelに追加しましたが、同じ問題があります。 他のクラスでは、mainメソッドを使用して、プリンシパルJPanelをフレームに追加します。

+1

'null'なのでレイアウトはあなたが両方のパネルに' opciones2'を追加しようとしました – MadProgrammer

+1

問題の第1の仮定によりだろう。それは1つにしかできません。 – AJNeufeld

+1

コンポーネントは1つのコンテナにしか置かれません。2番目のコンテナにコンポーネントを追加しようとすると、自動的にコンテナから削除されます – MadProgrammer

答えて

0

jpJugador2は100ピクセルです。

あなたは、Y = 125にコンポーネントを追加していると超えて、例えば、

jlJ2.setBounds(10, 125, 80, 20); 

ので、パネルの範囲外表示され、従って、全く表示されません。

あなたは例えば、第二パネルの200x100エクステント内にそれらを配置する必要があります)

jlJ2.setBounds(10, 25, 80, 20); 
+0

あなたは正しいです。どうもありがとうございました! –

関連する問題