Προς το περιεχόμενο

JPanels και layout managers


paulogiann

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα,

τρέχοντας τον παρακάτω κώδικα περιμένω να εμφανιστεί στο παράθυρο που ανοίγει το "SCORE100" κάτι που όμως δεν συμβαίνει και δεν καταλαβαίνω το γιατί. Παρακαλώ αν έχετε όρεξη ρίξτε μια ματιά:

>public class temp extends JFrame{
ScorePanel score;
void buildConstraints(GridBagConstraints constraints,int gx,int gy,int gw,int gh,int wx, int wy){
	constraints.gridx=gx;
	constraints.gridy=gy;
	constraints.gridwidth=gw;
	constraints.gridheight=gh;
	constraints.weightx=wx;
	constraints.weighty=wy;}
		
public temp(){
	super("temporary-test window");
	setSize(200,200);
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	GridBagLayout gridbag=new GridBagLayout();
	GridBagConstraints constraints=new GridBagConstraints();
	JPanel pane=new JPanel();
	pane.setLayout(gridbag);
	score=new ScorePanel(100);
	buildConstraints(constraints,0,0,1,1,100,100);
	gridbag.setConstraints(score,constraints);
	pane.add(score);
	setContentPane(pane);
	pack();
	setVisible(true);}
public static void main( String [] args){
	temp newwindow=new temp();}}



class ScorePanel extends JPanel{
int score;
public ScorePanel(int x){
	super();
	score=x;}
public void paintComponent(Graphics comp){
	Graphics comp2D=(Graphics2D)comp;
	setBackground(Color.black);
	comp2D.setColor(Color.red);
	Font font=new Font ("Arial",Font.BOLD,25);
	comp2D.setFont(font);
	comp2D.drawString("SCORE"+score,20,50);}}

Όταν χρησιμοποίησα gridlayout όλα ήταν Ok!

Έχετε ιδέα τι μπορεί να κάνω λάθος?

Δημοσ.

public temp()

{

super("temporary-test window");

setSize(400, 400);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

GridBagLayout gridbag = new GridBagLayout();

GridBagConstraints constraints = new GridBagConstraints();

score = new ScorePanel(100);

score.setLayout(gridbag);

buildConstraints(constraints, 0, 0, 1, 1, 100, 100);

gridbag.setConstraints(score, constraints);

setContentPane(score);

setVisible(true);

}

 

allakse th synarthsh ayth

Δημοσ.

an prosekses kala sou ekana post thn allagmenh synarthsh.

ousiastika de xreiazesai 2 panels. sysxetizeis to layout me to panel pou thes ki esy to sysxetizeis me to lathos panel. bgal'to teleiws

Δημοσ.

Κι όμως βασικά θέλω ένα main panel στο οποίο θα ορίσω τον layout manager κι έπειτα θέλω να του κάνω add διάφορα άλλα panels. Παραπάνω κάνω add μόνο ένα για συντομία

Δημοσ.

Κι όμως βασικά θέλω ένα main panel στο οποίο θα ορίσω τον layout manager κι έπειτα θέλω να του κάνω add διάφορα άλλα panels. Παραπάνω κάνω add μόνο ένα για συντομία

Δημοσ.
score.setPreferredSize(new Dimension(300,100));

!!!!!!!!!!!!!!!

Thanks

Αλλά γιατί είναι απαραίτητη αυτή η εντολή? Αφού με την constraints ρυθμίζω τις αναλογίες..

Δημοσ.

na sou pw thn alh8eia ki egw den kserw!!! egw panta xrhsimopoiw thn setSize, alla otan douleyeis mesa apo IDEs (blepe JDeveloper, JBuilder, NEtBeans, Eclipse), ayta ftiaxnoun mona tous ton kwdika kai apo ekei to eida oti eprepe na balw k ayto. AFou douleyei, mhn rwtas to giati.... :P

Δημοσ.
na sou pw thn alh8eia ki egw den kserw!!! egw panta xrhsimopoiw thn setSize, alla otan douleyeis mesa apo IDEs (blepe JDeveloper, JBuilder, NEtBeans, Eclipse), ayta ftiaxnoun mona tous ton kwdika kai apo ekei to eida oti eprepe na balw k ayto. AFou douleyei, mhn rwtas to giati.... :P

:???:

Anyway, σ ευχαριστώ πολύ. Ά, by the way, για να εμφανιστεί το scorepanel πρέπει να μεγαλώσω με το ποντίκι λίγο τις διαστάσεις του παραθύρου που ανοίγει. Any ideas about that?

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...