Я заметил очень странное поведение моей программы сегодня. В основном у меня JToolBar uder, который JScrollPane с JTable. И внутри JPanel внутри JFrame. Каждый контейнер использует MigLayout.Java JTable и JToolBar странно изменяются
Теперь, если я начну приложение, это его значение по умолчанию внешний вид:
Но, если я перееду JToolBar и закрепить его обратно в исходное положение, теперь она выглядит следующим образом:
Вдруг нет границ. Я бы preffer если Не было ни вообще на первом месте, но изменить внешний вид GUI не хорошая черта вообще ... Пожалуйста, если вы знаете, что это неправильно, помочь :)
КОД:
public class Gui extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel mainPnl = null;
private JToolBar toolbar = null;
private Session session = null;
public Gui(Session session) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (UnsupportedLookAndFeelException e) {
} catch (ClassNotFoundException e) {
} catch (InstantiationException e) {
} catch (IllegalAccessException e) {
}
this.session = session;
setTitle("PRO2-Contact Manager v_0.1");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(800,420);
setResizable(true);
initMenu();
initMainPnl();
initToolbar();
initTable();
// KeyboardFocusManager manager =
// KeyboardFocusManager.getCurrentKeyboardFocusManager();
// manager.addKeyEventDispatcher(new MyDispatcher(aList));
setLocationRelativeTo(null);
setVisible(true);
}
private void initMenu() {
JMenuBar menu = new JMenuBar();
MenuListener ml = new MenuListener();
JMenu file = new JMenu("File");
file.setMnemonic(KeyEvent.VK_F);
menu.add(file);
JMenuItem exit = new JMenuItem("Exit");
exit.setMnemonic(KeyEvent.VK_E);
exit.addActionListener(ml);
file.add(exit);
JMenu help = new JMenu("Help");
help.setMnemonic(KeyEvent.VK_H);
menu.add(help);
JMenuItem controls = new JMenuItem("Controls");
controls.setMnemonic(KeyEvent.VK_C);
controls.addActionListener(ml);
help.add(controls);
JMenuItem about = new JMenuItem("About");
about.setMnemonic(KeyEvent.VK_A);
about.addActionListener(ml);
help.add(about);
setJMenuBar(menu);
}
private void initMainPnl(){
mainPnl = new JPanel(new MigLayout());
add(mainPnl);
}
private void initToolbar() {
toolbar = new JToolBar(JToolBar.HORIZONTAL);
toolbar.add(new JButton());
mainPnl.add(toolbar,"wrap");
}
private void initTable() {
MyTable table = new MyTable(new MyTableModel(this));
JScrollPane sp = new JScrollPane(table);
sp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
mainPnl.add(sp,"w 100%, h 100%");
}}
Как вы называете 'new MenuListener()'? 'MenuListener '- это интерфейс. – Paul
Было бы также полезно, если бы вы разместили пример, который продемонстрировал вашу проблему с классами, которые поставляются вместе с JDK, если причиной вашей проблемы являются ваши сторонние классы (miglayout, mytable). Без дополнительных классов люди не могут запускать ваш код, который ограничивает их способность помочь. Метод 'main' тоже был бы хорош. – Paul