[ Dejana Nikolić @ 26.01.2013. 22:42 ] @
U sledećem zadatku se traži da semafor bude uvijek na sredini panela bez obzira na kasniju promjenu veličine istog, pa mi treba pomoć oko toga.

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;




public class Semafor extends JPanel {

public void paintComponent( Graphics g ){
super.paintComponent( g );

g.setColor(Color.LIGHT_GRAY);
g.fillRoundRect(0, 0, 100, 220, 15, 15);

g.setColor(Color.DARK_GRAY);
g.fillRect(0, 220, 20, 180);

g.setColor(Color.RED);
g.fillOval(0, 10, 60, 60);

g.setColor(Color.YELLOW);
g.fillOval(0, 80, 60, 60);

g.setColor(Color.GREEN);
g.fillOval(0, 150, 60, 60);

}
}



import javax.swing.JFrame;

public class SemaforTest {

public static void main(String[] args) {

Semafor podloga = new Semafor();
JFrame prozor = new JFrame();


prozor.add(podloga);
prozor.setSize(400, 400);
prozor.setVisible(true);

}

}
[ casper.link @ 26.01.2013. 23:18 ] @
Ne mogu bas da se sjetim kako tačno ide ali ti može možda ovo pomoći u MainClass-i.

Code:
getContentPane().setLayout(new BorderLayout());
getContentPane().add(new Semafor(), BorderLayout.CENTER);


ProGuglaj malo termine "Java layout", "border layout", "box layout". Mislim da u tome čuči odgovor.
[ Dejana Nikolić @ 26.01.2013. 23:40 ] @
..hvala..
..sad ću da probam..
[ Dejana Nikolić @ 26.01.2013. 23:44 ] @


probala sam i neće..negdje griješim..a guglam to već mjesec dana...
[ bgd2500 @ 01.02.2013. 14:10 ] @
Recimo ovako:

Code:

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;

import javax.swing.JPanel;

public class Semafor extends JPanel {

    public Dimension getMinimumSize() {
        return new Dimension(100,400);
    }

    public Dimension getPreferredSize() {
        return new Dimension(100,400);
    }

    public void paintComponent( Graphics g ){
        
        g.setColor(Color.LIGHT_GRAY);
        g.fillRoundRect(0, 0, 100, 220, 15, 15);
        
        g.setColor(Color.DARK_GRAY);
        g.fillRect(0, 220, 20, 180);
        
        g.setColor(Color.RED);
        g.fillOval(0, 10, 60, 60);
        
        g.setColor(Color.YELLOW);
        g.fillOval(0, 80, 60, 60);
        
        g.setColor(Color.GREEN);
        g.fillOval(0, 150, 60, 60);
    }

}

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JFrame;

public class SemaforTest {

    public static void main(String[] args) {
        Semafor podloga = new Semafor();
        JFrame prozor = new JFrame();
        prozor.setLayout(new GridBagLayout());
        prozor.add(podloga, new GridBagConstraints());        
        prozor.setSize(400, 400);
        prozor.setVisible(true);
    }
    
}