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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вывод на JPanel, работаю в Idea 
:(
    Опции темы
Su_
  Дата 11.10.2007, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



 smile 
Добрый вечер.

ПОставил я Idea , создал Dialog  . понатыкал кнопок , полей и т.д 
он мне всё описал , все замечательно работает .. 

создал JPanel .. и хочу на неё вывести то что накодино руками , без редактора . . .в блокнотике ... 



как хотя бы в JPanel вывести какой то элемент по нажатию кнопочки .. 

это что он создал .. ну и я там понатыкал...
Код

public class p2p extends JDialog {
    private JPanel contentPane;
    private JButton buttonOK;
    private JButton buttonCancel;
    private JButton button1;
    private JButton b5;
    private JTextField f1;
    private JTextField f2;
    private JTextField f3;
    private JPanel JPanel1;


    JButton b1 = new JButton("Calculate");
  JButton b2 = new JButton("Clean!!!");
  JButton b3 = new JButton("CleanAll");

    // JTextField f1;
    //JTextField f2;
    //JTextField f3;


    private static final int PEER_WIDTH = 40;
    private static final int PEER_HEIGHT = 20;
    private static final int COEFF = 10;
    private static final int RADIUS = 300;

    private static ArrayList<DefaultGraphCell> _cells;
    private static ArrayList<DefaultGraphCell> _peers;
    public static ArrayList<DefaultGraphCell> _msgs;
    public static JGraph _graph;
    


    

    public p2p() {
        setContentPane(contentPane);

        setModal(true);
        getRootPane().setDefaultButton(buttonOK);

        buttonOK.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                onOK();
            }
        });

        buttonCancel.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                onCancel();
            }
        });

        button1.addActionListener(new ActionListener() {
                   public void actionPerformed(ActionEvent e) {
                       onButton1();
                   }
               });

          b5.addActionListener(new ActionListener() {
                   public void actionPerformed(ActionEvent e) {
                       onButton2();
                   }
               });






// call onCancel() when cross is clicked
        setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                onCancel();
            }
        });

// call onCancel() on ESCAPE
        contentPane.registerKeyboardAction(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                onCancel();
            }
        }, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);

    }

    private void onOK() {
// add your code here
        dispose();
    }
         private void onButton2() {
         p2p dialog1 = new p2p();

// add your code here if necessary
     dialog1.addPeer(2,12);
                 //  JPanel1.setSize(100,100);
             JPanel1.setBackground(Color.green);
      }
    private void onCancel() {
// add your code here if necessary
        dispose();
    }

      private void onButton1() {
// add your code here if necessary
       System.out.println("fuck");
    }


маин



Код

  public static DefaultGraphCell createVertex(String name, double x,
            double y, double w, double h, Color bg, boolean raised) {

        // Create vertex with the given name
        DefaultGraphCell cell = new DefaultGraphCell(name);

        // Set bounds
        GraphConstants.setBounds(cell.getAttributes(), new Rectangle2D.Double(
                x, y, w, h));

        // Set fill color
        if (bg != null) {
            GraphConstants.setGradientColor(cell.getAttributes(), bg);
            GraphConstants.setOpaque(cell.getAttributes(), true);
        }

        // Set raised border
        if (raised)
            GraphConstants.setBorder(cell.getAttributes(), BorderFactory
                    .createRaisedBevelBorder());
        else
            // Set black border
            GraphConstants.setBorderColor(cell.getAttributes(), Color.black);

        // Add a Floating Port
        cell.addPort();

        return cell;
    }
    //peers  operation


    private void addPeer(int peerID ,int cal) {
//        double x = 20 + (peerID%10)*100;
//        double y = 20 + (peerID / 10) * 50;
        double x = RADIUS + 20 + RADIUS * Math.sin(peerID * Math.PI / cal);
        double y = RADIUS + 20 + RADIUS * Math.cos(peerID * Math.PI / cal);
        DefaultGraphCell dgc = createVertex(peerID + "номер компьютера", x, y, PEER_WIDTH, PEER_HEIGHT, null, false);
        _cells.add(dgc);
        _peers.add(dgc);
        _graph.getModel().insert(new Object[] {dgc}, null, null, null, null);

    }




    public static void main(String[] args) {
        p2p dialog = new p2p();
        dialog.pack();
        dialog.setVisible(true);
       
        dialog.JPanel1.add(_graph)     ;
        System.exit(0);


        //Врезка со старого проекта
        GraphModel model = new DefaultGraphModel();
        _graph = new JGraph(model);
        // Control-drag should clone selection
        _graph.setCloneable(false);
        _graph.setBendable(false);
        _graph.setSelectionEnabled(false);
        _graph.setInvokesStopCellEditing(true);

        _graph.setJumpToDefaultPort(true);

        _cells = new ArrayList<DefaultGraphCell>();
        _peers = new ArrayList<DefaultGraphCell>();

        //PeerVis peerVis = new PeerVis();

        // Show in Frame
        //JFrame frame = new JFrame();
        new JScrollPane(_graph).add(dialog.getContentPane());
        


         //  p2p inst =new p2p();
 //peerVis = new PeerVis();

 //dialog.f1 = new JTextField();
dialog.f1.setColumns(10);
  //dialog.f2 = new JTextField();
 dialog.f2.setColumns(10);
 //dialog.f3 = new JTextField();
dialog.f3.setColumns(10);

 //b1.addActionListener(new Handler(inst) );
      //_graph.add(dialog);
                dialog.JPanel1.add(_graph) ;
    }

}








jgraph это библиотека , отдельная .... . 

если кто то сможет понят , проблему , это уже чудо)) smile 



--------------------
user posted image

PM MAIL WWW   Вверх
batigoal
Дата 12.10.2007, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 7
Всего: 151



Su_, форма у тебя несложная, написал бы лучше руками - было бы прозрачнее.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Su_
Дата 12.10.2007, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



я думаю , что проект будет рости , и постоянно копи-пастом заниматься - дело спорное .. )


--------------------
user posted image

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


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 6
Всего: 31



Su_, а причём тут копипаст?

Цитата(Su_ @  12.10.2007,  02:16 Найти цитируемый пост)
создал JPanel .. и хочу на неё вывести то что накодино руками

Ну так и ложи свои компоненты на панель, в чём проблема-то? Или ты не в курсе, как их вообще на панель ложить? Может, тогда стоит книжку-другую полистать?


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
Su_
Дата 13.10.2007, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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


--------------------
user posted image

PM MAIL WWW   Вверх
nornad
Дата 13.10.2007, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 6
Всего: 31



Дело не только в возможной кривости. Оптимальный код он тебе не выдаст и всё равно придётся "обработать напильником". И при этом ещё разбираться, что же он там "накодил". Со временем, конечно, привыкнешь к его "творчеству", только вот зачем? Времени он особо не сэкономит (если вообще сэкономит). Хотя, если фейс простенький и по барабану на код и оптимальность - можно и наавтоматить. Но я предпочитаю и в этом случае своими руками фейс нарисовать.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
Su_
Дата 13.10.2007, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



убедили , уже перерисовал ))


--------------------
user posted image

PM MAIL WWW   Вверх
Su_
Дата 13.10.2007, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



 smile  smile  smile  smile  smile 


--------------------
user posted image

PM MAIL WWW   Вверх
Platon
Дата 13.10.2007, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



nornad, вы жестоки по отношению к себе! Писать рожу руками - дело неблагодарное. Более того, я бы не сказал, что IDEA генерирует кошмарный код. Даже c GridBagLayout очень даже понятный код остается, если не сказать более, что он весьма и весьма структурирован.
PM MAIL ICQ   Вверх
nornad
Дата 14.10.2007, 04:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 6
Всего: 31



Ну, после четвёртой IDEA приходилось код довольно сильно напильником дорабатывать.
Да и в любом случае, пока ты будешь тратить время на то, чтобы от визуального редактора добиться нужного интерфейса и его работы - я вполне успею руками такое же нарисовать. И ещё. Ручной код мой будет работать абсолютно независимо от того, в какой IDE я буду компилировать его. А вот визуальные редакторы часто любят рисовать понятные только им файлы форм. В IDEA это можно отключить. Точнее, сказать, чтобы форма была полностью встроена в java-файл. Только новички это делают редко. smile

В принципе, визуальный редактор кое-чем и полезен. Например, если мы любим создавать свои компоненты и встраивать их в свою "поллитру" редактора, то нам придётся писать компонент более... правильный, что ли. Можно просто расширить компонент и юзать его в программе, но он при этом может не встраиваться в палитру или не давать возможности настроить какие-то внутренние вещи, т.е. не быть настоящим Bean'ом.
Но лично меня не тянет использовать визуальный редактор только для этого. smile

Цитата(Platon @  14.10.2007,  01:25 Найти цитируемый пост)
nornad, вы жестоки по отношению к себе!

Ой, да не то слово. Замучал уже себя. smile


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
Su_
Дата 15.10.2007, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



 smile  smile 


--------------------
user posted image

PM MAIL WWW   Вверх
nornad
Дата 15.10.2007, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 6
Всего: 31



Su_, эти смайлы означают, что всё заработало?


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
Su_
Дата 19.10.2007, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



нет,  только тему поменяли . .. .Я просто переписал ручками


--------------------
user posted image

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0588 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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