Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Оконое приложение на Java


Автор: Su_ 6.8.2007, 18:48
работаю в Eclipse , есть уже проект , когда запускаю ,открываеться окно в нем всякие детальки (...)
как окно посмотреть в Едиторе ?, что распологать детальки мышкой , а не прописью координат. ? , или 
возможна ли работа с JAVA , как в MFC  как в студии ? smile 

Автор: xber9 6.8.2007, 23:54
в джаве я незнаю мжно ли мышкой перетаскивать я лично пишу кодом 
при помощи менеджеров расположения 
к примеру вот код окна
Код

import java.awt.*;
import java.io.*;

import javax.swing.*;
import javax.swing.border.TitledBorder;
import java.awt.event.*;

public class Options extends JDialog {
    JCheckBox c1;
    JCheckBox c2;
    ButtonGroup bg=new ButtonGroup();
 static   JRadioButton O1;
 static   JRadioButton M1;
   static JRadioButton E1;
   ButtonGroup bg2=new ButtonGroup();
ButtonGroup bg22=new ButtonGroup();
   static JRadioButton O2;
  static  JRadioButton M2;
  static JRadioButton E2;

static JRadioButton vid1;
static JRadioButton vid2;

  JSpinner sprner3;
  JSpinner sprner;
JSpinner sprner2;
    public Options() {

        setTitle("1С for D&C - Настройки");
   Container mc=getContentPane();
setModal(true);
   setDefaultCloseOperation(DISPOSE_ON_CLOSE);

Box GLAVNIY=Box.createHorizontalBox();
   GLAVNIY.add(Box.createHorizontalStrut(7));
   Box ELEMENT=Box.createVerticalBox();


Box box= Box.createHorizontalBox();
Box main= Box.createVerticalBox();
main.add(Box.createVerticalStrut(6));
 Box box1=Box.createHorizontalBox();
Font shrift=new Font("Times New Roman",Font.PLAIN,14);
 JLabel l1=new JLabel("Ваши раса");
l1.setFont(shrift);
box1.add(l1);
main.add(box1);

Box box2 =Box.createHorizontalBox();

   JPanel panel1 = new JPanel (new GridLayout(0, 1, 0,3));
panel1.setBorder(new TitledBorder("Первичный ресурс"));
   panel1.add(O1=new JRadioButton("Органика") );
   bg.add(O1);
panel1.add(M1=new JRadioButton("Минералы") );
   bg.add(M1);
   panel1.add(E1=new JRadioButton("Энергия") );
   bg.add(E1);
box2.add(panel1);

box2.add(Box.createHorizontalStrut(10));


   JPanel panel2 = new JPanel (new GridLayout(0, 1, 0,3));
panel2.setBorder(new TitledBorder("Вторичный ресурс"));
   panel2.add(O2=new JRadioButton("Органика") );
   bg2.add(O2);
panel2.add(M2=new JRadioButton("Минералы") );
   bg2.add(M2);
   panel2.add(E2=new JRadioButton("Энергия") );
   bg2.add(E2);
box2.add(panel2);

main.add(box2);
box.add(main);
box.add(Box.createHorizontalStrut(7));
Box main2=Box.createVerticalBox();
    main2.add(Box.createVerticalStrut(6));

    Box box11=Box.createHorizontalBox();
JLabel ml=new JLabel("Оплата перевозки (ввод координат)");
   ml.setFont(shrift);
box11.add(ml);
main2.add(box11);

main2.add(Box.createVerticalStrut(4));

   Box box22 =Box.createHorizontalBox();

      JPanel panel12 = new JPanel (new GridLayout(0, 1, 0,1));
   panel12.setBorder(new TitledBorder("Вид окна"));
   panel12.add(vid1=new JRadioButton("Ручной ввод") );
      bg22.add(vid1);
      panel12.add(vid2=new JRadioButton("Импорт из DCMap") );
      bg22.add(vid2);

   box22.add(panel12);

main2.add(box22);
   box.add(main2);

ELEMENT.add(box);
   ELEMENT.add(Box.createVerticalStrut(5));
 Box planet=Box.createVerticalBox();
Box p1=Box.createHorizontalBox();

 JLabel l2=new JLabel("Планета для производства");
    l2.setFont(shrift);
p1.add(l2);
 planet.add(p1);

 planet.add(Box.createVerticalStrut(4));

 Box box3=Box.createHorizontalBox();
       Box  box31=Box.createVerticalBox();
 Box box311=Box.createHorizontalBox();
         JLabel l3=new JLabel("Население планеты");
         box311.add(l3);
         box31.add(box311);

         box31.add(Box.createVerticalStrut(4));
Box b=Box.createHorizontalBox();
         b.add(Box.createHorizontalGlue());
         sprner3=new JSpinner(new SpinnerNumberModel(1,1,208000,1));

         sprner3.setValue(Integer.parseInt(Glavnaia.optionsSet[3]));
         b.add(sprner3);
         b.add(Box.createHorizontalGlue());
box31.add(b);
         box31.add(Box.createVerticalStrut(4));

              Box box312=Box.createHorizontalBox();
box312.add(Box.createHorizontalGlue());
              Box box3121=Box.createVerticalBox();
              Box box31211=Box.createHorizontalBox();
 JLabel lX1=new JLabel("Количество заводов");
              box31211.add(lX1);
              box3121.add(box31211);
            box3121.add(Box.createVerticalStrut(3));
              Box txtbox2=Box.createHorizontalBox();
              sprner=new JSpinner(new SpinnerNumberModel(0,0,6,1));
            sprner.setValue(Integer.parseInt(  Glavnaia.optionsSet[4]));
              txtbox2.add(sprner);
              box3121.add(txtbox2);
              box312.add(box3121);

              box312.add(Box.createHorizontalStrut(5));

              Box box3122=Box.createVerticalBox();
              Box box31221=Box.createHorizontalBox();
 JLabel lY1=new JLabel("Уплотнители стази");
              box31221.add(lY1);
              box3122.add(box31221);
            box3122.add(Box.createVerticalStrut(3));
              Box txtbox3=Box.createHorizontalBox();
              sprner2=new JSpinner(new SpinnerNumberModel(0,0,6,1));
              sprner2.setValue(Integer.parseInt(
                                 Glavnaia.optionsSet[5]));
              txtbox3.add(sprner2);
              box3122.add(txtbox3);
              box312.add(box3122);
 box312.add(Box.createHorizontalGlue());
              box31.add(box312);
              box3.add(box31);

         box3.add(Box.createHorizontalStrut(32));

                        planet.add(box3);


                        planet.add(Box.createVerticalStrut(12));
                        Box box4=Box.createHorizontalBox();
                                Box box41=Box.createVerticalBox();
                                box41.add(Box.createVerticalStrut(4));

                                     Box box412=Box.createHorizontalBox();

                                     Box box4121=Box.createVerticalBox();
                       c1=new JCheckBox("Дворец есть?");
                       box4121.add(c1);
                                     box412.add(box4121);

                                     box412.add(Box.createHorizontalStrut(5));

                                     Box box4122=Box.createVerticalBox();
                c2=new JCheckBox("Фабкрика комплекутующих есть?");



                box4122.add(c2);
                                     box412.add(box4122);

                                     box41.add(box412);
                                     box4.add(box41);

                                box4.add(Box.createHorizontalStrut(32));

                                planet.add(box4);


 ELEMENT.add(planet);


   ELEMENT.add(Box.createVerticalStrut(5));
   Box box5=Box.createHorizontalBox();
      JButton sava=new JButton("Сохранить");
      box5.add(sava);
      box5.add(Box.createHorizontalStrut(5));
      JButton cansle=new JButton("Отмена");
      box5.add(cansle);

   ELEMENT.add(box5);


GLAVNIY.add(ELEMENT);
   GLAVNIY.add(Box.createHorizontalStrut(7));
mc.add(GLAVNIY);
   pack();
   setLocationRelativeTo(Glavnaia.mc);  // Если это строки не будет, окно будет в левом верхнем углу
    setResizable(false);

    new radioListen().st();
 setVisible(true);

    }


помоему все лишнее презал остаил тольо  интре вейс 
если что сам подправиш

Автор: nornad 7.8.2007, 00:58
Цитата(xber9 @  7.8.2007,  02:54 Найти цитируемый пост)
в джаве я незнаю мжно ли мышкой

Можно. В эклипсе для этого используют плагин Мisual Editor (для его работы нужен ещё какой-то плагин, но я эклипсом не пользуюсь и явно не вспомню).

Автор: Michael.de 7.8.2007, 02:58
Плагин называется Visual Editor, скачать можно http://www.eclipse.org/vep/WebContent/main.php (последний Release Build: 1.2).
Дополнительные модули: EMF и GEF  smile

P.S. Только код получается  smile ... я его потом переписываю  smile

P.P.S. Забыл сказать: класс должен создаваться как "Visual Class"

Автор: nornad 7.8.2007, 05:14
Цитата(Michael.de @  7.8.2007,  05:58 Найти цитируемый пост)
Плагин называется Visual Editor

Точно, опечатался. smile
Цитата(Michael.de @  7.8.2007,  05:58 Найти цитируемый пост)
P.S. Только код получается  smile ... я его потом переписываю

Я вообще не пользуюсь подобными редакторами - дольше делаешь интерфейс из-за того, что сначала надо добиться нужного вида от редактора, а потом выправить код, который он создал. Да и менеджеры он обычно использует далеко не оптимальные.

Автор: powerOn 7.8.2007, 08:30
Еще у NetBeans отличный GUI редактор - встроенный, не нужно ничего дополнительного качать.

Автор: hamsterKSU 7.8.2007, 10:36
Цитата(powerOn @  7.8.2007,  07:30 Найти цитируемый пост)
Еще у NetBeans отличный GUI редактор - встроенный
 - соглашаюсь.

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

Автор: AleksandrS 9.8.2007, 15:36
Спасибо , сейчас будем пробовать)!!_ smile 

Автор: CrasyMen 14.8.2007, 01:03
Цитата(hamsterKSU @  7.8.2007,  10:36 Найти цитируемый пост)
 просто надо выбирать правильные менеджеры компановки и все

можно поподробней?

Автор: LuMee 14.8.2007, 07:32
Цитата(CrasyMen @ 14.8.2007,  01:03)
можно поподробней?

Use your imagination smile Т.е. постарайся представить, как должны быть раскиданы компоненты по фрейму и как они должны изменять свое местоположение и размеры при изменении размеров фрейма. Для пущей наглядности можно нарисовать на бумаге. После того, как с этим будет все ясно, остается лишь ознакомиться со списком менеджеров компоновки, предлагаемых Java API или другими имеющимися библиотеками и выбрать наиболее подходящий(-ие).
А вообще, мое ИМХО таково, что лучше не мучать себя и воспользоваться услугами визуальных инструментов. Т.е. простые формы на 3-4 компонента можно, конечно, и руками ваять, а вот в случае со сложными интерфейсами ручное кодирование будет занимать уже слишком много времени (особенно многократные перезапуски приложения с целью убедиться, что все в итоге отрисовывается как надо).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)