Hi.
Ich will mithilfe des GridBagLayouts auf ein Panel einen Pokertisch mitsamt 10 Spielern zeichnen lassen.Das klappt auch ganz gut wie man auf dem ersten Bild sieht.Allerdings will ich nun unten rechts ein weitere Panel hinzufügen.dieses ist breiter als die Panels in denen die Pokerkarten sich befinden.Es kommt zu dem Effekt,dass die Karten rechts verzerrt werden.Wie kann ich diesen Effekt verhindern.
Ich will mithilfe des GridBagLayouts auf ein Panel einen Pokertisch mitsamt 10 Spielern zeichnen lassen.Das klappt auch ganz gut wie man auf dem ersten Bild sieht.Allerdings will ich nun unten rechts ein weitere Panel hinzufügen.dieses ist breiter als die Panels in denen die Pokerkarten sich befinden.Es kommt zu dem Effekt,dass die Karten rechts verzerrt werden.Wie kann ich diesen Effekt verhindern.
Java:
package view.GamePanels;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import model.Game;
import model.Player;
public class PlayFieldPanel extends JPanel
{
GridBagLayout gridBagLayout;
GridBagConstraints gridBagConstraints;
PokerTablePanel pokerTablePanel;
public PlayFieldPanel()
{
gridBagLayout = new GridBagLayout();
gridBagConstraints = new GridBagConstraints();
setLayout(gridBagLayout);
setPlayerGridBagConstraints();
addTable();
addPlayersAboveTable();
addPlayersUnderTable();
addPlayersLeftTable();
addPlayersRightTable();
//addGameHistoryComponent();
//addDecisionPanel();
}
private void addDecisionPanel()
{
gridBagConstraints.gridx = 4;
gridBagConstraints.gridy = 3;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.gridheight = 1;
gridBagConstraints.gridwidth = 2;
PlayerdecisionPanel playerdecisionPanel = new PlayerdecisionPanel();
gridBagLayout.setConstraints(playerdecisionPanel, gridBagConstraints);
add(playerdecisionPanel);
//addEmptyPanels();
}
private void addTable()
{
gridBagConstraints.fill = GridBagConstraints.BOTH;
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = 3;
gridBagConstraints.gridheight = 2;
pokerTablePanel = new PokerTablePanel();
gridBagLayout.setConstraints(pokerTablePanel, gridBagConstraints);
add(pokerTablePanel);
}
private void addPlayersAboveTable()
{
addPlayerTable(1, 0, 0,1,1);
addPlayerTable(2, 0, 1,1,1);
addPlayerTable(3, 0, 2,1,1);
}
private void addPlayersUnderTable()
{
addPlayerTable(1, 3, 3,1,1);
addPlayerTable(2, 3, 4,1,1);
addPlayerTable(3, 3, 5,1,1);
}
private void addPlayersLeftTable()
{
addPlayerTable(0, 1 , 6,1,1);
addPlayerTable(0, 2 , 7,1,1);
}
private void addPlayersRightTable()
{
addPlayerTable(4, 1 , 8,1,1);
addPlayerTable(4, 2 , 9,1,1);
}
private void addGameHistoryComponent()
{
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.gridheight = 1;
JEditorPane GameHistoryPane = new JEditorPane();
gridBagLayout.setConstraints(GameHistoryPane,gridBagConstraints);
add(GameHistoryPane);
}
private void addEmptyPanels()
{
JPanel jPanel = new JPanel();
JPanel panel = new JPanel();
gridBagConstraints.gridx = 5;
gridBagConstraints.gridy = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagLayout.setConstraints(jPanel, gridBagConstraints);
add(jPanel);
gridBagConstraints.gridy = 2;
gridBagLayout.setConstraints(panel, gridBagConstraints);
add(panel);
}
private void setPlayerGridBagConstraints()
{
gridBagConstraints = new GridBagConstraints();
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
Insets insets = new Insets(5,5,5,5);
gridBagConstraints.insets = insets;
}
private void addPlayerTable(int gridx,int gridy,int playercount,int gridwidth,int gridheight)
{
gridBagConstraints.gridx = gridx;
gridBagConstraints.gridy = gridy;
gridBagConstraints.gridheight = gridwidth;
gridBagConstraints.gridwidth = gridheight;
JPanel playerPanel;
if(playercount < Game.getPlayers().size())
{
playerPanel = new PlayerPanel(Game.getPlayers().get(playercount).get_name());
}
else
{
playerPanel = new JPanel();
}
gridBagLayout.setConstraints(playerPanel, gridBagConstraints);
Game.getPlayerPanels().add(playerPanel);
add(playerPanel);
}
}