Как заставить JTable автоматически изменять размер при развертывании окна в EclipseJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как заставить JTable автоматически изменять размер при развертывании окна в Eclipse

Сообщение Anonymous »

работаем над приложением с графическим интерфейсом в Eclipse с использованием плагина windowsbuilder. Приложение работает отлично. но размер jTable не изменится, когда я перетащу края окна. или когда я максимизирую приложение. В окне есть и другие компоненты, размер которых я хотел бы автоматически изменить; однако jtable мне просто необходим. когда я максимизирую окно, таблица остается того же размера. Я использую Absolute Layout в качестве менеджера макетов. поэтому расположение элементов в окне было простым перетаскиванием. Я искал свойства, которые позволяют мне установить resize = true или что-то подобное, и нашел autoRisizeMode. поэтому я установил значение true. это не сработало. есть предложения? Вот код моего метода инициализации() в графическом интерфейсе

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);

}


Подробнее здесь: https://stackoverflow.com/questions/582 ... in-eclipse
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»