работает над приложением с графическим интерфейсом в Eclipse с помощью плагина windowsbuilder. Приложение работает просто отлично. но jTable не будет изменять размер, когда я перетаскиваю края окна. или когда я максимизирую приложение. В окне есть другие компоненты, размер которых я бы хотел автоматически изменить;однако, jtable является тем, что является обязательным для меня. когда я разверну окно, размер таблицы останется прежним. Я использую Absolute Layout для менеджера по расположению. поэтому размещение элементов в окне было просто вопросом перетаскивания. Я искал свойства, которые позволяют мне установить resize = true или что-то подобное, и я нашел autoRisizeMode. поэтому я установил это на истину. это не сработало. какие-либо предложения? Вот код для моего метода инициализации Gui ()
private void initialize() {
frame = new JFrame();
frame.setAlwaysOnTop(true);
frame.getContentPane().setBackground(new Color(240, 240, 240));
frame.setBounds(100, 100, 882, 577);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JLabel lblIpRange = new JLabel("Ip Range");
lblIpRange.setFont(new Font("Tahoma", Font.PLAIN, 14));
lblIpRange.setBounds(10, 59, 55, 14);
frame.getContentPane().add(lblIpRange);
startIpLabel = new JTextField();
startIpLabel.setBounds(75, 58, 100, 20);
frame.getContentPane().add(startIpLabel);
startIpLabel.setColumns(10);
endIpLabel = new JTextField();
endIpLabel.setBounds(198, 58, 100, 20);
frame.getContentPane().add(endIpLabel);
endIpLabel.setColumns(10);
String[] columns = {"Number", "Ip Address", "Hostname", "Mac"};
JButton scanButton = new JButton("Scan");
scanButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
ipScan = new IpScanMain(startIpLabel.getText());
ipScan.startIpScanning();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
allNodes = ipScan.getAllNodes();
int rows = allNodes.size();
data = new Object[rows][COLUMNS];
int index = 0;
for(Node node : allNodes) {
data[index][0] = index;
data[index][1] = node.getIp();
data[index][2] = node.getHostName();
data[index][3] = node.getMac();
index++;
}
table.setModel(new DefaultTableModel(data, columns));
}
});
scanButton.setBounds(323, 57, 89, 23);
frame.getContentPane().add(scanButton);
JSeparator separator = new JSeparator();
separator.setBounds(11, 106, 845, 2);
frame.getContentPane().add(separator);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewportBorder(new LineBorder(new Color(0, 0, 0)));
scrollPane.setBounds(10, 119, 846, 410);
frame.getContentPane().add(scrollPane);
table = new JTable();
table.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
table.setFont(new Font("Tahoma", Font.PLAIN, 14));
table.setBackground(Color.WHITE);
table.setBorder(new LineBorder(new Color(0, 0, 0), 0));
table.setCellSelectionEnabled(true);
table.setFillsViewportHeight(true);
table.setColumnSelectionAllowed(true);
table.setModel(new DefaultTableModel(
new Object[][] { },
new String[] {
"Number", "Ip Address", "Hostname", "Mac", "Ports"
}
));
table.getColumnModel().getColumn(0).setPreferredWidth(30);
table.getColumnModel().getColumn(0).setMaxWidth(2147483619);
table.getColumnModel().getColumn(3).setPreferredWidth(80);
scrollPane.setColumnHeaderView(table);
scrollPane.setViewportView(table);
JMenuBar menuBar = new JMenuBar();
menuBar.setBackground(new Color(240, 240, 240));
menuBar.setBounds(10, 0, 849, 26);
frame.getContentPane().add(menuBar);
JMenu mnFile = new JMenu("File");
menuBar.add(mnFile);
JMenuItem mntmClose = new JMenuItem("Open File");
mnFile.add(mntmClose);
JSeparator separator_1 = new JSeparator();
mnFile.add(separator_1);
JMenuItem mntmSave = new JMenuItem("Save");
mnFile.add(mntmSave);
JMenuItem mntmSaveAs = new JMenuItem("Save As");
mnFile.add(mntmSaveAs);
JSeparator separator_2 = new JSeparator();
mnFile.add(separator_2);
JMenuItem mntmPrint = new JMenuItem("Print...");
mnFile.add(mntmPrint);
JSeparator separator_3 = new JSeparator();
mnFile.add(separator_3);
JMenuItem mntmProperties = new JMenuItem("Settings");
mnFile.add(mntmProperties);
JSeparator separator_4 = new JSeparator();
mnFile.add(separator_4);
JMenuItem mntmClose_1 = new JMenuItem("Exit");
mnFile.add(mntmClose_1);
JMenu mnEdit = new JMenu("Edit");
menuBar.add(mnEdit);
JMenuItem mntmCopy = new JMenuItem("Copy");
mnEdit.add(mntmCopy);
JMenuItem mntmPaste = new JMenuItem("Paste");
mnEdit.add(mntmPaste);
JMenu mnHelp = new JMenu("Help");
menuBar.add(mnHelp);
JMenuItem mntmGuide = new JMenuItem("Guide");
mnHelp.add(mntmGuide);
JMenuItem mntmAbout = new JMenuItem("About");
mnHelp.add(mntmAbout);
JPanel panel = new JPanel();
panel.setBorder(new LineBorder(new Color(0, 0, 0)));
panel.setBounds(574, 37, 281, 58);
frame.getContentPane().add(panel);
panel.setLayout(null);
JLabel lblNewLabel = new JLabel("IPv4");
lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 14));
lblNewLabel.setBounds(10, 11, 46, 14);
panel.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("IPv6");
lblNewLabel_1.setFont(new Font("Tahoma", Font.BOLD, 14));
lblNewLabel_1.setBounds(10, 36, 46, 14);
panel.add(lblNewLabel_1);
JLabel ipv4Label = new JLabel("192.168.1.10/24");
ipv4Label.setFont(new Font("Tahoma", Font.PLAIN, 14));
ipv4Label.setBounds(53, 11, 123, 14);
panel.add(ipv4Label);
JLabel ipv6Label = new JLabel("ff80:ee3d:ff35:abdd:3dce:335d");
ipv6Label.setFont(new Font("Tahoma", Font.PLAIN, 14));
ipv6Label.setBounds(53, 36, 196, 14);
panel.add(ipv6Label);
JComboBox comboBox = new JComboBox();
comboBox.setBounds(446, 57, 100, 22);
frame.getContentPane().add(comboBox);
System.out.println(Thread.currentThread().getName());
//combobox network interface stuff
NetInterface netint = null;
try {
netint = new NetInterface(frame, comboBox);
} catch (SocketException | UnknownHostException e1) {
e1.printStackTrace();
}
EventQueue.invokeLater(netint);
}