0
- 21.08.2012 - 10:09
|
На основной форме есть JPanel2.В нее спомощью метода add добавляется frm1 на которой находятся несколько JButton. Когда начинаешь изменять мышкой размеры JPanel2,то JButton остаются прижатыми влево, а должны следовать за нижним краем JPanel2 и одновременно перемещаться к правому краю формы.Вот код.Разработка ведется на NetBeans 7.2 и при тестировании формы frm1 в визуальном редакторе форм JButton перемещаются правильно.В чем проблема? jPanel2.setLayout(new FlowLayout(FlowLayout.LEFT)); Form1 frm1 = new Form1(); jPanel2.add(frm1); | |
1
- 21.08.2012 - 11:07
|
Ну тут тебе надо использовать несколько манагеров, сначала использовать BorderLayout (он по умолчанию) и новую панель добавлять в него на юг, а в этой новой панели уже использовать FlowLayout и выравниваем по правому краю. Тобишь примерно так: JFrame myFrame = new JFrame(); myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CL OSE); myFrame.setSize(200, 90); JPanel myPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); myPanel.add(new JButton("Test")); myFrame.add(myPanel, BorderLayout.SOUTH); myFrame.setVisible(true); | |
2
- 22.08.2012 - 18:15
| Спасибо за пример,но он несколько не в тему.Наверное я не совсем корректно описал проблему. Мне надо одну панель вставить в другую и при этом JButton должны следовать за нижним краем JPanel2 и одновременно перемещаться к правому краю формы. | |
3
- 23.08.2012 - 03:43
|
2-coder73 > Может быть действительно что-то недоговариваешь... На первой панели ставишь манагер BorderLayout, вторую панель добавляешь в первую в нижний край (у бордера она называется SOUTH), и при изменении вторая панель всегда будет нижнюю часть занимать, а во второй панели уже FlowLayout с выравниванием по нужному краю ,кстати в вопросе говоришь "к правому краю", а в топике используешь FlowLayout.LEFT, это понятно по левому выравнивание, вот тот же пример применительно к панелям: JPanel jpanFirst = new JPanel(new BorderLayout()); JPanel jpanSecond = new JPanel(new FlowLayout(FlowLayout.RIGHT)); jpanSecond.add(new JButton("Test")); jpanFirst.add(jpanSecond, BorderLayout.SOUTH); Однозначно будет по нижнему краю и прижиматься вправо. Хотя может что-то я в вопросе и не понимаю | |
4
- 23.08.2012 - 03:48
|
3-Sserj > Или вполне вероятно если тебе надо именно в jpanSecond задать такое поведение то просто jpanSecond можно сделать из двух панелей, jpanSecond с BorderLayout и и вложить третью в нее с FlowLayout, типа такого: JPanel jpanFirst = new JPanel(); JPanel jpanSecond = new JPanel(new BorderLayout()); JPanel jpanThird = new JPanel(new FlowLayout(FlowLayout.RIGHT)); jpanThird.add(new JButton("Test")); jpanSecond.add(jpanThird, BorderLayout.SOUTH); jpanFirst.add(jpanSecond); Вообщем формы на свинге обычно очень слоёные бутрброды получаются, хотя при достаточной сноровке тырфейс можно нарисовать любой :) | |
5
- 23.08.2012 - 04:24
| 4-Sserj > Ну или разобраться со SpringLayout - ом и использовать его, с ним можно сделать вообще что угодно, но меня он просто как то напрягает. | |
6
- 23.08.2012 - 16:07
| Спасибо за примеры,сейчас разбираюсь с визуальным дизайнером NetBeans.Я с Java, только начал разбираться.Раньше писал на C++,C#. Скажи Sserj,а какие бесплатные генераторы отчетов можно использовать в Java? | |
7
- 24.08.2012 - 05:03
|
6-coder73 > Про отчеты не могу много сказать, у меня специализация другая, но напарник подсказал что для нетбинса лучше пользовать JasperReports. Секундный поиск выдал: http://ru.wikipedia.org/wiki/JasperReports А может и не лучше, может это просто единственное что он знает, так как других тоже не назвал :) | |
8
- 24.08.2012 - 20:48
| Спасибо Sserj! | |
| Интернет-форум Краснодарского края и Краснодара |