Zmniejszenie wielkości przycisku

0

Mam pytanie jak zmniejszyć te przyciski żeby nie zajmowały całości ramki?;d

 import java.awt.*;
 import java.awt.event.*;
 import javax.swing.*;
 
 public class pr
 {  
    public static void main(String[] args)
    {  
       RamkaP ramka = new RamkaP();
       ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       ramka.show();
    }
 }
 
 /**
    Ramka, zawierająca panel przycisków
 */
 class RamkaP extends JFrame
 {
    public RamkaP()
    {
       setTitle("TestPrzyciskow");
       setSize(SZEROKOSC, WYSOKOSC);
 	setLayout(new BorderLayout());
       // dołącz panel do ramki
 
       PanelP panel = new PanelP();
       Container powZawartosci = getContentPane();
       powZawartosci.add(panel);
       add(panel, BorderLayout.CENTER);
    }
 
    public static final int SZEROKOSC = 300;
    public static final int WYSOKOSC = 200;  
 }
 
 /**
    Panel, zawierający trzy przyciski
 */
 class PanelP extends JPanel
 {  
    public PanelP()
    {  
	setLayout(new GridLayout(5,1));

       // skonstruuj przyciski
 
       JButton przyciskZolty = new JButton("Żółty");
       JButton przyciskNiebieski = new JButton("Niebieski");
       JButton przyciskCzerwony = new JButton("Czerwony");
        JButton przyciskZielony = new JButton("Zielony");
        JButton przyciskCzarny = new JButton("Czarny");
       // dołącz przyciski do panelu
        
       add(przyciskZolty);
       add(przyciskNiebieski);
       add(przyciskCzerwony);
       add(przyciskZielony);
       add(przyciskCzarny);
       
       // skonstruuj działania przycisków
 
       DzialanieKoloru dzialanieZoltego = new DzialanieKoloru(Color.yellow);
       DzialanieKoloru dzialanieNiebieskiego = new DzialanieKoloru(Color.blue);
       DzialanieKoloru dzialanieCzerwonego = new DzialanieKoloru(Color.red);
       DzialanieKoloru dzialanieZielonego = new DzialanieKoloru(Color.green);
       DzialanieKoloru dzialanieCzarnego = new DzialanieKoloru(Color.orange);

       // przyporządkuj działania do przycisków
 
       przyciskZolty.addActionListener(dzialanieZoltego);
       przyciskNiebieski.addActionListener(dzialanieNiebieskiego);
       przyciskCzerwony.addActionListener(dzialanieCzerwonego);
       przyciskZielony.addActionListener(dzialanieZielonego);
       przyciskCzarny.addActionListener(dzialanieCzarnego);
    }
 
    /**
       Słuchacz, zmieniający kolor tła panelu
    */
    private class DzialanieKoloru implements ActionListener
    {  
       public DzialanieKoloru(Color k)
       {  
          kolorTla = k;
       }
 
       public void actionPerformed(ActionEvent zdarzenie)
       {  
          setBackground(kolorTla);
          repaint();
       }
 
       private Color kolorTla;
    }
 }
 
0
setLayout(new GridLayout(5,1));

Użyj innego menadżera rozkładu.

0

Tylko nie do końca ogarniam a potrzeba mi żeby były na środku i połowę wielkości

0

[code].setSize(int szerokosc, int wysokosc);[/code]
zda egzamin?

0

BorderLayout spowoduje, że jedyny komponent dodany do okna (panel z przyciskami) zajmie całe okno. Musisz dodać z boków dwa panele, których kolor będziesz zmieniał.
Poprawiłem przestarzałe show() na setVisible(true), dodałem setLocationRelativeTo(null) by okno było na środku ekranu, i zmieniłem "Czarny" na "Pomarańczowy".

 import java.awt.*;
 import java.awt.event.*;
 import javax.swing.*;
 
 public class pr
 {  
    public static void main(String[] args)
    {  
        RamkaP ramka = new RamkaP();
        ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ramka.setVisible(true);
    }
 }
 
 /**
    Ramka, zawierająca panel przycisków
 */
 class RamkaP extends JFrame
 {
    public RamkaP()
    {
        setTitle("TestPrzyciskow");
        setSize(SZEROKOSC, WYSOKOSC);
        setLayout(new BorderLayout());
       // dołącz panel do ramki
 
        PanelP panel = new PanelP();
        add(panel, BorderLayout.CENTER);
        lewy = new BocznyPanel();
        add(lewy,BorderLayout.WEST);
        prawy = new BocznyPanel();
        add(prawy,BorderLayout.EAST);
        setLocationRelativeTo(null);       
    }
    private JPanel lewy; 
    private JPanel prawy;
    private Color kolorTla; 
    public final int SZEROKOSC = 300;
    public final int WYSOKOSC = 200;
    class BocznyPanel extends JPanel
    {
        public BocznyPanel()
        {
            setPreferredSize(new Dimension(SZEROKOSC/4,WYSOKOSC));
        }
    }
    class PanelP extends JPanel
    {  
        public PanelP()
        {  
            setLayout(new GridLayout(5,1));
 
           // skonstruuj przyciski
 
           JButton przyciskZolty = new JButton("Żółty");
           JButton przyciskNiebieski = new JButton("Niebieski");
           JButton przyciskCzerwony = new JButton("Czerwony");
           JButton przyciskZielony = new JButton("Zielony");
           JButton przyciskCzarny = new JButton("Pomarańczowy");
           // dołącz przyciski do panelu
 
           add(przyciskZolty);
           add(przyciskNiebieski);
           add(przyciskCzerwony);
           add(przyciskZielony);
           add(przyciskCzarny);
 
           // skonstruuj działania przycisków
 
           DzialanieKoloru dzialanieZoltego = new DzialanieKoloru(Color.yellow);
           DzialanieKoloru dzialanieNiebieskiego = new DzialanieKoloru(Color.blue);
           DzialanieKoloru dzialanieCzerwonego = new DzialanieKoloru(Color.red);
           DzialanieKoloru dzialanieZielonego = new DzialanieKoloru(Color.green);
           DzialanieKoloru dzialanieCzarnego = new DzialanieKoloru(Color.orange);
 
           // przyporządkuj działania do przycisków
 
           przyciskZolty.addActionListener(dzialanieZoltego);
           przyciskNiebieski.addActionListener(dzialanieNiebieskiego);
           przyciskCzerwony.addActionListener(dzialanieCzerwonego);
           przyciskZielony.addActionListener(dzialanieZielonego);
           przyciskCzarny.addActionListener(dzialanieCzarnego);
        }
 
        // Słuchacz, zmieniający kolor tła bocznych paneli
        private class DzialanieKoloru implements ActionListener
        {  
            public DzialanieKoloru(Color k)
            {  
                kolorTla = k;
            }
 
            public void actionPerformed(ActionEvent zdarzenie)
            {  
                lewy.setBackground(kolorTla);
                prawy.setBackground(kolorTla);
                lewy.repaint();
                prawy.repaint();
            }
 
            private Color kolorTla;
        }
    }   
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1