2012-04-03 2 views
1

Я написал небольшую функцию, которая отобразит таблицу внутри диалогового окна, и я буду искать советы о том, что нужно очистить, и о том, что лучше программировать, когда дело касается разговора.Какие улучшения должны быть сделаны в этом фрагменте JDialog?

Какие усовершенствования могут быть сделаны в мой код

//constraints for panel to fill out the frame 
GridBagConstraints grid = new java.awt.GridBagConstraints(); 
grid.fill = java.awt.GridBagConstraints.BOTH; 
grid.weightx = 1.0; 
grid.weighty = 1.0; 

//create jtable based on a table model created from an array 
JTable table = new JTable(testModel);  //a method creates my test model 
table.add(table.getTableHeader(), BorderLayout.PAGE_START); 
TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(testModel); 
table.setRowSorter(sorter); 

//add scrollpane for visibility 
JScrollPane jscrollpane = new JScrollPane(table); 
table.setFillsViewportHeight(true); 

//add the scrollpane to a panel 
JPanel panel = new JPanel(); 
panel.setLayout(new GridBagLayout()); 
panel.add(jscrollpane, grid); 

//create for use with the dialog 
JFrame frame = new JFrame(); 

JDialog dialog = new JDialog(frame, "My Test Dialog", true); 
dialog.add(panel); 
dialog.pack(); 
dialog.setLocationRelativeTo(null); //added as advice of Stripies 
dialog.setVisible(true); 

Я открыт для всех конструктивной критики, как моя цель состоит в том, чтобы узнать правильные методы программирования с качелей.

Чтобы уточнить, я смотрю, могу ли я что-нибудь предпринять или что-то улучшить.

+2

Чтобы центрировать свой 'JDialog', вы можете просто использовать setLocationRelativeTo (null)'. – Stripies

+1

В качестве альтернативы рассмотрим 'setLocationByPlatform (true)'. – trashgod

+1

[sscce] (http://sscce.org/) часто более деликатный, чем фрагмент, что часто встречается в ответах этих [авторов] (http://stackoverflow.com/tags/swing/topusers). – trashgod

ответ

2

Каковы преимущества использования setLocationByPlatform(true)?

Использование setLocationRelativeTo(null) - удобный выбор для примеров, демонстраций и утилит. Приложения качества сохраняют предпочтительную позицию пользователя, возможно, записывая самую последнюю настройку в экземпляре java.util.Preferences. Поскольку опыт пользователя зависит от платформы, setLocationByPlatform(true) представляет собой наилучшее усилие исполнителя, чтобы удовлетворить это ожидание. Это лучший выбор для местоположения по умолчанию, когда предпочтение пока не существует.