Java gui как разделить два JList
- Как разъединить два листа (чтобы между ними было расстояние, пробовал border, separator это не то)
- Как сделать JTextField по меньше?
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.FlowLayout;
import javax.swing.JTextField;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JList;
import javax.swing.border.LineBorder;
import java.awt.Color;
import java.awt.Dimension;
public class test extends JFrame {
private JPanel contentPane;
private JTextField textField;
private JPanel panel_1;
private JButton btnNewButton;
private JButton btnNewButton_1;
private JPanel panel_2;
private JPanel panel_3;
private JPanel panel_4;
private JPanel panel_5;
private JButton btnDelete;
private JButton btnNewButton_3;
private JList list;
private JList list_1;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
test frame = new test();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public test() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 400, 600);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(2, 2));
setContentPane(contentPane);
JPanel panel = new JPanel();
contentPane.add(panel, BorderLayout.NORTH);
panel.setLayout(new GridLayout(2, 0, 0, 0));
textField = new JTextField();
panel.add(textField);
textField.setColumns(10);
panel_1 = new JPanel();
panel.add(panel_1);
panel_1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
btnNewButton = new JButton("Add");
btnNewButton.setPreferredSize(new Dimension(80, 23));
panel_1.add(btnNewButton);
btnNewButton_1 = new JButton("Run");
btnNewButton_1.setPreferredSize(new Dimension(80, 23));
panel_1.add(btnNewButton_1);
panel_2 = new JPanel();
FlowLayout flowLayout_1 = (FlowLayout) panel_2.getLayout();
flowLayout_1.setHgap(20);
contentPane.add(panel_2, BorderLayout.WEST);
panel_3 = new JPanel();
FlowLayout flowLayout = (FlowLayout) panel_3.getLayout();
flowLayout.setHgap(20);
contentPane.add(panel_3, BorderLayout.EAST);
panel_4 = new JPanel();
contentPane.add(panel_4, BorderLayout.CENTER);
panel_4.setLayout(new GridLayout(1, 0, 0, 3));
list = new JList();
list.setBorder(new LineBorder(Color.BLACK));
panel_4.add(list);
list_1 = new JList();
list_1.setBorder(new LineBorder(Color.BLACK));
panel_4.add(list_1);
panel_5 = new JPanel();
contentPane.add(panel_5, BorderLayout.SOUTH);
btnDelete = new JButton("Delete");
btnDelete.setPreferredSize(new Dimension(80, 23));
panel_5.add(btnDelete);
btnNewButton_3 = new JButton("Clear");
btnNewButton_3.setPreferredSize(new Dimension(80, 23));
panel_5.add(btnNewButton_3);
}
}
Ответы (1 шт):
Автор решения: Perfect Voyage
→ Ссылка
Поскольку вы используете грид менеджер, то следует указывать кол-во "колонок". Посмотрите какие параметры этот менеджер принимает в конструктор, и всё сразу станет ясно. https://docs.oracle.com/javase/7/docs/api/java/awt/GridLayout.html#GridLayout(int,%20int,%20int,%20int)
// Your code
panel_4 = new JPanel();
contentPane.add(panel_4); // delete lay here
panel_4.setLayout(new GridLayout(1, 2, 10, 10)); // set 2 Columns and gap
list = new JList();
list.setBorder(new LineBorder(Color.BLACK));
panel_4.add(list);
list_1 = new JList();
list_1.setBorder(new LineBorder(Color.BLACK));
panel_4.add(list_1);
// Your code


