Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> НЕ срабатывает getContentPane 
V
    Опции темы
Killer_13
Дата 13.7.2011, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: нет
Всего: 1



Здравств, Обычное окошко. В окошке хочу поставить 2 панели одна за другой определенных размеров, почему-то выравнивает по центру все. Подскажите. Спасибо.
Код

import java.awt.Color;
import java.awt.FlowLayout;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;


public class V_TestWin extends JFrame {
    
    private JPanel window_panel = new JPanel();
    private JPanel left_panel = new JPanel();
    private JPanel content_panel = new JPanel();

    public static void main(String[] args) {
        new V_TestWin();

    }
    
    public V_TestWin(){
        window();
    }
    
    private void window(){
        setSize(1024, 768);
        setLocation(200, 100);
        this.getContentPane().add(new JLabel("Label"));
        this.setLayout(new FlowLayout());
        left_panel.setSize(424, 768);
        content_panel.setSize(424, 768);
        left_panel.setBorder(BorderFactory.createLineBorder(Color.green));
        left_panel.add(new JButton("left"));
        content_panel.add(new JButton("content"));
        window_panel.add(left_panel);
        window_panel.add(content_panel);
        add(window_panel);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }

}


PM MAIL   Вверх
toxx
Дата 13.7.2011, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: нет
Всего: 13



Java туториалы не существуют походу?)
Код

private FlowLayout mMainLayout = new FlowLayout();
...
mMainLayout.setAlignment(FlowLayout.LEFT);
setLayout(mMainLayout);

PM MAIL   Вверх
Killer_13
Дата 13.7.2011, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: нет
Всего: 1



Хорошо, а как объяснить то что когда я даю рамку для панели она у меня вот такая. Вот чуток измененный код. Ну почему, по логике вещей должно и так работать. :(
Код

import java.awt.Color;
import java.awt.FlowLayout;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;


public class V_TestWin extends JFrame {
    
    private JPanel window_panel = new JPanel();
    private JPanel left_panel = new JPanel();
    private JPanel content_panel = new JPanel();

    public static void main(String[] args) {
        new V_TestWin();

    }
    
    public V_TestWin(){
        window();
    }
    
    private void window(){
        setSize(1024, 768);
        setLocation(200, 100);
        this.getContentPane().add(window_panel);
        this.setLayout(new FlowLayout());
        left_panel.setSize(424, 768);
        content_panel.setSize(600, 768);
        left_panel.setBorder(BorderFactory.createLineBorder(Color.green));
        left_panel.add(new JButton("left"));
        content_panel.setBorder(BorderFactory.createLineBorder(Color.blue));
        content_panel.add(new JButton("content"));
        window_panel.add(left_panel);
        window_panel.add(content_panel);
        add(window_panel);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }

}



Это сообщение отредактировал(а) Killer_13 - 13.7.2011, 20:06

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  Capture.JPG 34,97 Kb
PM MAIL   Вверх
toxx
Дата 13.7.2011, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: нет
Всего: 13



По логике каких вещей чтото должно работать?И что с рамкой не так?
PM MAIL   Вверх
Killer_13
Дата 13.7.2011, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: нет
Всего: 1



Я хочу, чтоб эти панели заняли то пространство что для них отведено, 
Я же указал для них размер: 
Код

        left_panel.setSize(424, 768);
        content_panel.setSize(600, 768);

тоисть соответственно первая рамка шириной 424, вторая 600, получается что они у меня одинакового размера.
PM MAIL   Вверх
toxx
Дата 13.7.2011, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: нет
Всего: 13



Зачем Layout's понимаете?(просто не совсем видимо)
Код

window_panel.setLayout(null);
setContentPane(window_panel);

PM MAIL   Вверх
Killer_13
Дата 13.7.2011, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: нет
Всего: 1



Я понимаю зачем Layoutы, зачем сарказничать, разобрать хочу.
Ну вот 
Код

window_panel.setLayout(null);

Делает так как хочу, только одну на другую, Нужен Flow, но FlowLayout обрезает, - почему не знаю.

А с этой строкой даже не запускается
Код

setContentPane(window_panel);

Код

Exception in thread "main" java.lang.IllegalArgumentException: adding container's parent to itself
    at java.awt.Container.checkAddToSelf(Container.java:472)
    at java.awt.Container.addImpl(Container.java:1083)
    at java.awt.Container.add(Container.java:998)
    at javax.swing.JFrame.addImpl(JFrame.java:562)
    at java.awt.Container.add(Container.java:410)
    at V_TestWin.window(V_TestWin.java:39)
    at V_TestWin.<init>(V_TestWin.java:23)
    at V_TestWin.main(V_TestWin.java:18)


Добавлено через 6 минут и 23 секунды
Увидел ошибку, убрал 
Код

add(window_panel);

PM MAIL   Вверх
toxx
Дата 13.7.2011, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: нет
Всего: 13



Вообще написано где ошибка
at V_TestWin.window(V_TestWin.java:39),
следовательно строку 
Код

add(window_panel);

нужно убрать
и я не сарказничаю, а всеголишь уточняю


Это сообщение отредактировал(а) toxx - 13.7.2011, 20:55
PM MAIL   Вверх
Killer_13
Дата 13.7.2011, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: нет
Всего: 1



smile Уже сам увидел где ошибка, это то понятно все, но вот как мне сделать чтоб панель content_panel начиналась там, где заканчивается left_panel. Если Layou(null) они ставятся друг на друга, Если FlowLayout() тогда получается вариант как на скриншоте, что я прикреплял.  
PM MAIL   Вверх
toxx
Дата 13.7.2011, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: нет
Всего: 13



Вероятно както так 
Код

left_panel.setBounds(0,0,424, 768);
content_panel.setBounds(424,0,600, 768);

В свинге не силён, поэтому возможны более простые способы например в андроиде есть 
лэйаут в относительных координатах и там достаточно в xml прописать layout_below(above etc.)
PM MAIL   Вверх
Killer_13
Дата 13.7.2011, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: нет
Всего: 1



Спасибо, так пошло, пока оставлю так, если кто-то не подскажет как правильнее, хотя дума. так тоже правильно. smile
Можно сказать вопрос решен.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0668 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.