Stworzyłem GUI oparte na panelu, na którym mam różne przyciski, labelki itd...
Chciałbym do tego jeszcze dodać JListę z scrollpanelami, ale panel ma layout(null) // żebym mógł dowolnie poukładać klawisze
Problem w tym, że scrollpanele nie działają na tym layoucie. Jak rozwiązać taki problem?
Dodam listing programu, tak na wszelki wypadek:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultListModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ListSelectionModel;
import javax.swing.ScrollPaneConstants;
import javax.swing.SwingUtilities;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class Fasada extends JFrame{
private JButton JB_Aa;
private JButton JB_abc;
private JButton JB_def;
private JButton JB_ghi;
private JButton JB_jkl;
private JButton JB_mno;
private JButton JB_pqr;
private JButton JB_tuv;
private JButton JB_wxyz;
private JButton JB_Wyczysc;
private JButton JB_Dodaj;
private JButton JB_Usun;
private JTextArea JTA_wpisz;
public Fasada()
{
ActionListener al = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(e.getSource()==JB_Dodaj){
}
}};
setSize(480, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel okno=new JPanel();
okno.setLayout(null);
JTA_wpisz = new JTextArea();
JTA_wpisz.setBounds(20, 20, 200, 40);
//Tworzenie wszystkich klawiszy okna i nadanie im parametrów
JB_Dodaj = new JButton("+");
JB_Dodaj.setBounds(240, 180, 50, 20);
JB_Dodaj.addActionListener(al);
JB_Usun = new JButton("-");
JB_Usun.setBounds(290, 180, 50, 20);
JB_Usun.addActionListener(al);
JB_Wyczysc = new JButton("Czyść");
JB_Wyczysc.setBounds(340, 180, 70, 20);
JB_Wyczysc.addActionListener(al);
JB_Aa = new JButton("A/a");
JB_Aa.setBounds(20, 80, 60, 20);
JB_Aa.addActionListener(al);
JB_abc = new JButton("abc");
JB_abc.setBounds(20, 120, 60, 20);
JB_abc.addActionListener(al);
JB_def = new JButton("def");
JB_def.setBounds(85, 120, 60, 20);
JB_def.addActionListener(al);
JB_ghi = new JButton("ghi");
JB_ghi.setBounds(150, 120, 60, 20);
JB_ghi.addActionListener(al);
JB_jkl = new JButton("jkl");
JB_jkl.setBounds(20, 150, 60, 20);
JB_jkl.addActionListener(al);
JB_mno = new JButton("mno");
JB_mno.setBounds(85, 150, 60, 20);
JB_mno.addActionListener(al);
JB_pqr = new JButton("pqr");
JB_pqr.setBounds(150, 150, 60, 20);
JB_pqr.addActionListener(al);
JB_tuv = new JButton("tuv");
JB_tuv.setBounds(52, 180, 60, 20);
JB_tuv.addActionListener(al);
JB_wxyz = new JButton("wxyz");
JB_wxyz.setBounds(117, 180, 65, 20);
JB_wxyz.addActionListener(al);
okno.add(JTA_wpisz);
okno.add(JB_Dodaj);
okno.add(JB_Usun);
okno.add(JB_Wyczysc);
okno.add(JB_Aa);
okno.add(JB_abc);
okno.add(JB_def);
okno.add(JB_ghi);
okno.add(JB_jkl);
okno.add(JB_mno);
okno.add(JB_pqr);
okno.add(JB_tuv);
okno.add(JB_wxyz);
setContentPane(okno);
setVisible(true);
}
public static void main(String args[]){
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Fasada();
}
});
}
}