Skip to content

Instantly share code, notes, and snippets.

@Cherubi
Created June 21, 2012 09:11
Show Gist options
  • Save Cherubi/2964763 to your computer and use it in GitHub Desktop.
Save Cherubi/2964763 to your computer and use it in GitHub Desktop.
import java.awt.*;
import javax.swing.*;
/**
*
* @author Cherubi
*/
public class LayoutBlockOut implements Runnable {
private JFrame kehys;
public static void main(String[] args) {
SwingUtilities.invokeLater(new LayoutBlockOut());
}
@Override
public void run() {
luoIkkuna();
luoPaaLayout();
}
private void luoIkkuna() {
kehys = new JFrame();
kehys.setPreferredSize(new Dimension(800, 600));
kehys.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
kehys.pack();
kehys.setVisible(true);
}
private void luoPaaLayout() {
kehys.setLayout(new BorderLayout());
kehys.add(luoCenter(), BorderLayout.CENTER);
kehys.add(luoEtelavalikko(), BorderLayout.SOUTH);
}
private JButton luoNappula(String teksti) {
JButton nappula = new JButton(teksti);
nappula.setFocusable(false);
return nappula;
}
private Container luoEtelavalikko() {
Container etela = new Container();
etela.setLayout(new GridLayout(1,3));
etela.add(luoPystyLayoutEtelaan());
etela.add(luoNappula("2"));
etela.add(luoNappula("3"));
return etela;
}
private Container luoPystyLayoutEtelaan() {
Container pysty = new Container();
pysty.setLayout(new GridLayout(3,1));
pysty.add(luoNappula("1.1"));
pysty.add(luoNappula("1.2"));
pysty.add(luoNappula("1.3"));
return pysty;
}
private Container luoCenter() {
Container center = new Container();
center.setLayout(new BorderLayout());
center.add(luoTalletetut(), BorderLayout.WEST);
center.add(luoNappula("Otsikko"), BorderLayout.NORTH);
center.add(luoAsetukset(), BorderLayout.CENTER);
return center;
}
private Container luoTalletetut() {
Container talletetut = new Container();
talletetut.setLayout(new GridLayout(7,1));
talletetut.add(luoNappula("Talletetut asetukset"));
for (int i = 1; i < 6; i++) {
talletetut.add(luoNappula(i+""));
}
talletetut.add(luoNappula(""));
return talletetut;
}
private Container luoAsetukset() {
Container asetukset = new Container();
asetukset.setLayout(new BorderLayout());
asetukset.add(luoNappula("Otsikko"), BorderLayout.NORTH);
asetukset.add(luoAsetusGrid(), BorderLayout.CENTER);
return asetukset;
}
private Container luoAsetusGrid() {
Container grid = new Container();
grid.setLayout(new GridLayout(1,3));
grid.add(luoEkaPuoliGrid("1", "Palikat"));
grid.add(luoTokaPuoliGrid("1", "2"));
grid.add(luoFlow());
return grid;
}
private Container luoEkaPuoliGrid(String eka, String toka) {
Container puoli = new Container();
puoli.setLayout(new GridLayout(2,1));
puoli.add(luoPalikkasetit());
puoli.add(luoNappula(toka));
return puoli;
}
private Container luoPalikkasetit() {
Container palikkasetit = new Container();
palikkasetit.setLayout(new BoxLayout(palikkasetit, BoxLayout.Y_AXIS));
palikkasetit.add(new JLabel("Palikkasetti"));
for (int i=0; i<4; i++) {
palikkasetit.add(luoNappula(i+1 + ""));
}
return palikkasetit;
}
private Container luoTokaPuoliGrid(String eka, String toka) {
Container puoli = new Container();
puoli.setLayout(new GridLayout(2,1));
puoli.add(luoUlottuvuudet());
puoli.add(luoJaettuGrid());
return puoli;
}
private Container luoUlottuvuudet() {
Container palikkasetit = new Container();
palikkasetit.setLayout(new BoxLayout(palikkasetit, BoxLayout.Y_AXIS));
for (int i=0; i<3; i++) {
palikkasetit.add(new JLabel(i+1 + ". teksti"));
palikkasetit.add(luoNappula(i+1 + ""));
}
return palikkasetit;
}
private Container luoJaettuGrid() {
Container jaettu = new Container();
jaettu.setLayout(new GridLayout(2,1));
jaettu.add(luoNappula("Nappulat"));
jaettu.add(luoNappula("Värit"));
return jaettu;
}
private Container luoFlow() {
Container flow = new Container();
flow.setLayout(new FlowLayout());
Container box = new Container();
box.setLayout(new BoxLayout(box, BoxLayout.Y_AXIS));
box.add(new JLabel("Taso"));
for (int i=0; i<=10; i++) {
box.add(luoNappula(i + ""));
}
flow.add(box);
return flow;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment