1.4 Containere Flashcards
Dupa ce versiune JDK nu mai este nevoie sa se specifice getContentPane() ?
dupa versiunea 1.4
Creati doua grupari separate de butoane:
- Gray, Button, Group ( 3 butoane )
- Green, Button, Group ( 3 butoane )
Dimensiunea fiecarei grupari trebuie sa fie de 100,100
this.setLayout(new FlowLayout());
JPanel gray = new JPanel(); gray. setBackground(Color.GRAY); gray. add(new JButton("Gray")); gray. add(new JButton("Button")); gray. add(new JButton("Group")); gray. setPreferredSize(new Dimension(100, 100)); JPanel green = new JPanel(); green. setBackground(Color.GREEN); green. add(new JButton("Green")); green. add(new JButton("Button")); green. add(new JButton("Group")); green. setPreferredSize(new Dimension(100, 100)); this. add(gray); this. add(green); this. setSize(250, 150); this. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this. setVisible(true);
Ce putem face daca continutul containerului nostru depaseste marimea containerului ?
Putem folosi JScrollPane pentru a crea un scroll bar.
Care sunt setarile care se pot face pentru JScrollPane pentru ca aceasta sa fie mereu vizibila ?
Exista doua setari, una pentru scroll-bar-ul vertical iar alta pentru cel orizontal.
sp. setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
sp. setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
Care sunt constantele pe care le are clasa ScrollPaneConstants ?
NEVER, ALWAYS, AS_NEEDED
HORIZONTAL_SCROLLBAR
VERTICAL_SCROLLBAR
JScrollPane poate contine doua titluri, cum se pot seta acestea ?
- Column header care se seteaza folosind metoda:
sp. setColumnHeaderView(“text”); - Row header care se seteaza folosind metoda:
sp. setRowHeaderView(“text”);
Exista un container care este capabil sa imparta continutul in doua, vertical sau orizontal, si apoi cu ajutorul unui control de manipulare, utilizatorul sa poata seta cat spatiu sa fie disponibil pentru fiecare continut.Cum se cheama acesta ?
JSplitPane
Folosind JSplitPane creati o fereastra care sa contina doua zone, una gri si una verde, iar acestea sa fie despartite pe orizontala.
this.setLayout(new FlowLayout());
JSplitPane sp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
JPanel leftP = new JPanel(); leftP.setBackground(Color.gray); leftP.setPreferredSize(new Dimension(200,200));
JPanel rightP = new JPanel(); rightP.setBackground(Color.green); rightP.setPreferredSize(new Dimension(200,200));
sp. add(leftP); sp. add(rightP); this.add(sp); this. setSize(450, 250); this. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this. setVisible(true);
Controlul de manipulare al containerului JSplitPane nu trebuie sa fie neaparat pe mijloc, cum se poate seta programabil ca la pornirea aplicatiei sa se afle la 50 de pixeli fata de marginea din stanga ?
sp.setDividerLocation(50);
Care este metoda care se foloseste pentru a reseta la default locatia dividerului ?
sp.resetToPreferedSizes();
Creati doua tab-uri de dimensiunea 300,100, unul rosu si unul galben.
JTabbedPane tp = new JTabbedPane();
JPanel red = new JPanel(); red. setBackground(Color.red); red. setPreferredSize(new Dimension(300, 100)); JPanel yellow = new JPanel(); yellow. setBackground(Color.YELLOW); yellow. setPreferredSize(new Dimension(300, 100)); tp. addTab("Red", red); tp. addTab("Yellow", yellow); this.add(tp);
Denumirea tab-ului poate contine si o imagine, cum se poate realiza acest lucru ?
tp.addTab(“Yellow”,new ImageIcon(“icon.png”), yellow);
Cum putem afla care componenta ( tab ) este selectata in momentul actual ? si ce index are aceasta ?
Folosind metoda getSelectedComponent() si getSelectedIndex();
Pentru a adauga un listener pe JTabbedPane ce metoda se foloseste ?
addChangeListener
Cum se poate prelua JTabbedPane din constructorul metodei addChangeListener(ChangeEvent e) ?
JTabbedPane tpp = (JTabbedPane) e.getSource();