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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> 2 таблицы в одной форме (и не только), Как это реализовать? 
:(
    Опции темы
RedButterfly
Дата 23.8.2006, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Учусь
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 4.7.2005
Где: Уфа->Москва

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



В JFrame нужно вставить две таблицы, кнопки, текстовые поля и другое.  Скажите пожалуйста как это лучше всего сделать? (воспользоваться каким-нибудь компановщиком, или определить размера каждого объекта) А ещё у меня одного из полей: поле даты - и как его реализовать я не знаю. 
Если у кого-нибудь есть совет (а ещё лучше пример) буду очень рада.
Спасибо за ответы.
PM MAIL ICQ Skype   Вверх
powerOn
Дата 23.8.2006, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Цитата(RedButterfly @  23.8.2006,  21:47 Найти цитируемый пост)
В JFrame нужно вставить две таблицы, кнопки, текстовые поля и другое.  Скажите пожалуйста как это лучше всего сделать? (воспользоваться каким-нибудь компановщиком, или определить размера каждого объекта) 


Проще (да и лучше) воспользоваться "каким-нибудь компановщиком" (менеджером расположения (Layout)). Все зависит от того что необходимо получить в итоге.

Цитата(RedButterfly @  23.8.2006,  21:47 Найти цитируемый пост)
А ещё у меня одного из полей: поле даты - и как его реализовать я не знаю. 


JSpinner c использованием SpinnerDateModel или скачайте какой-нибудь "модный" компонент-календарь, например jcalendar



--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
RedButterfly
Дата 24.8.2006, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Учусь
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 4.7.2005
Где: Уфа->Москва

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



MoonCat а у вас есть примерчик?
PM MAIL ICQ Skype   Вверх
powerOn
Дата 24.8.2006, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Цитата(RedButterfly @  24.8.2006,  10:26 Найти цитируемый пост)
MoonCat а у вас есть примерчик? 

Чего конкретно примерчик?

По спиннеру здесь есть примеры.



--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
RedButterfly
Дата 24.8.2006, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Учусь
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 4.7.2005
Где: Уфа->Москва

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



Пример фрейма с несколькими таблицами, кнопками и т.д. 
PM MAIL ICQ Skype   Вверх
powerOn
Дата 24.8.2006, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Цитата(RedButterfly @  24.8.2006,  14:24 Найти цитируемый пост)
Пример фрейма с несколькими таблицами, кнопками и т.д.  


2 минуты в редакторе форм и пожалуйста:

Код

public class NewJFrame extends javax.swing.JFrame {
    
    /** Creates new form NewJFrame */
    public NewJFrame() {
        initComponents();
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">
    private void initComponents() {
        jSplitPane1 = new javax.swing.JSplitPane();
        jScrollPane3 = new javax.swing.JScrollPane();
        jTable3 = new javax.swing.JTable();
        jScrollPane2 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jPanel1 = new javax.swing.JPanel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jToggleButton1 = new javax.swing.JToggleButton();
        jComboBox1 = new javax.swing.JComboBox();
        jProgressBar1 = new javax.swing.JProgressBar();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTree1 = new javax.swing.JTree();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jTable3.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jScrollPane3.setViewportView(jTable3);

        jSplitPane1.setRightComponent(jScrollPane3);

        jScrollPane2.setMinimumSize(new java.awt.Dimension(250, 28));
        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jScrollPane2.setViewportView(jTable1);

        jSplitPane1.setLeftComponent(jScrollPane2);

        getContentPane().add(jSplitPane1, java.awt.BorderLayout.CENTER);

        jPanel1.setLayout(new java.awt.GridLayout());

        jButton1.setText("jButton1");
        jPanel1.add(jButton1);

        jButton2.setText("jButton2");
        jPanel1.add(jButton2);

        jButton3.setText("jButton3");
        jPanel1.add(jButton3);

        jToggleButton1.setText("jToggleButton1");
        jPanel1.add(jToggleButton1);

        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
        jPanel1.add(jComboBox1);

        getContentPane().add(jPanel1, java.awt.BorderLayout.NORTH);

        jProgressBar1.setValue(74);
        jProgressBar1.setStringPainted(true);
        getContentPane().add(jProgressBar1, java.awt.BorderLayout.SOUTH);

        jScrollPane1.setViewportView(jTree1);

        getContentPane().add(jScrollPane1, java.awt.BorderLayout.WEST);

        pack();
    }// </editor-fold>
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    }
    
    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JProgressBar jProgressBar1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JSplitPane jSplitPane1;
    private javax.swing.JTable jTable1;
    private javax.swing.JTable jTable3;
    private javax.swing.JToggleButton jToggleButton1;
    private javax.swing.JTree jTree1;
    // End of variables declaration
    
}




--------------------
user posted image нет времени думать - нужно писать КОД!

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


Учусь
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 4.7.2005
Где: Уфа->Москва

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



спасибо smile
А вот если внизу нужна одна кнопочка маленьких размеров, то вроде как есть какой-то метод, который задает значение(число) до границы области, то есть вот тут кнопка на всю ширину окна:
Код

getContentPane().add(jButton1, java.awt.BorderLayout.SOUTH);

 а нужно чтобы это была небольшая аккуратная кнопочка.

Может кто знает этот метод?
PM MAIL ICQ Skype   Вверх
powerOn
Дата 24.8.2006, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Почитайте документацию по Layout-ам, ситуация сразу прояснится.


--------------------
user posted image нет времени думать - нужно писать КОД!

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


а почему бы и нет?
**


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

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



а ещё в нашем ФАКе есть на русском:
http://vingrad.ru/JAVA-JAV-000105


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
RedButterfly
Дата 25.8.2006, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Учусь
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 4.7.2005
Где: Уфа->Москва

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



Посмотрите пожалуйста код. Вроде бы правильно пишу (чтобы одна таблица была выше, а другая ниже), но кажется ,что splitPane не может быть горизонтальным разделителем.
Код

import javax.swing.JScrollPane;
import javax.swing.JPanel;
import javax.swing.*;
public class test extends javax.swing.JFrame {
        public test() {
        super("Тестик");
        initComponents();
    }
     private void initComponents() {
        JSplitPane splitPane1 = new JSplitPane();
        JTable table1 = new JTable();
        JTable table2 = new JTable();
        JButton jButton1 = new JButton();
        JScrollPane scrollPane1 = new JScrollPane();
        JScrollPane scrollPane2 = new JScrollPane();
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
      table1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
             {new Integer(1265),"Client1","10.02.2006",new Float(0)},
    {new Integer(2623),"Client2","30.03.2006",new Float(7845.12)},
    {new Integer(8953),"Client3","22.06.2006",new Float(7845.1)},
    {new Integer(2356),"Client5","8.12.2005",new Float(456412.3)}
            },
            new String [] {"ID_Name", "Name", "Date", "Max_Credit"}
        ));
      scrollPane1 = new JScrollPane(table1);
      scrollPane1.setMaximumSize(new java.awt.Dimension(300,200));
      scrollPane1.setAlignmentX(LEFT_ALIGNMENT);
      scrollPane1.setViewportView(table1);
      getContentPane().add(scrollPane1,java.awt.BorderLayout.NORTH);
      splitPane1.setTopComponent(scrollPane1);
        table2.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] 
          {new Integer(1654),"12.14.2003",new Float(1235.3),new Float(23659.2),new Integer(2623)}        {new Integer(7954),"6.05.2004",new Float(4589.23),new Float(7845.12),new Integer(1265)},
    {new Integer(1234),"18.11.2006",new Float(78412.2),new Float(7845.1),new Integer(2356)},
    {new Integer(7327),"14,04,2006",new Float(98633),new Float(456412.3),new Integer(8953)},
            },
            new String [] {"ID_Order", "Date", "Sum","Credit", "ID_Name"}
        ));
        scrollPane2.setViewportView(table2);
        scrollPane2.setAlignmentX(LEFT_ALIGNMENT); 
        scrollPane2.setMaximumSize(new java.awt.Dimension(300,200));
        splitPane1.setBottomComponent(scrollPane2);// эта нижняя таблица 
        getContentPane().add(splitPane1, java.awt.BorderLayout.NORTH);
          pack();
    }
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new test().setVisible(true);
            }
        });
    }
  }


Или может, но это надо как-то по-другому писать?
PM MAIL ICQ Skype   Вверх
Metal_Heart
Дата 25.8.2006, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


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

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



Цитата(RedButterfly @  25.8.2006,  10:18 Найти цитируемый пост)
но кажется ,что splitPane не может быть горизонтальным разделителем.


Код

splitPaneLeft = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, left_panel, right_panel);


а также:
http://java.sun.com/j2se/1.5.0/docs/api/ja...JSplitPane.html

а здесь можно нарыть много примеров:
http://java.sun.com/docs/books/tutorial/


Это сообщение отредактировал(а) Metal_Heart - 25.8.2006, 10:56


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
RedButterfly
Дата 25.8.2006, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Учусь
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 4.7.2005
Где: Уфа->Москва

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



спасибо большое всем smile
Вот что у меня получилось:
Код

import javax.swing.JScrollPane;
import javax.swing.*;
public class test extends javax.swing.JFrame {
        public test() {
        super("Тестик");
        initComponents();
    }
     private void initComponents() {
        JTable table1 = new JTable();
        JTable table2 = new JTable();
        JButton jButton1 = new JButton();
        JScrollPane scrollPane1 = new JScrollPane();
        JScrollPane scrollPane2 = new JScrollPane();
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
      table1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                 {new Integer(1265),"Client1","10.02.2006",new Float(0)},
                    {new Integer(2623),"Client2","30.03.2006",new Float(7845.12)},
                    {new Integer(8953),"Client3","22.06.2006",new Float(7845.1)},
                    {new Integer(2356),"Client5","8.12.2005",new Float(456412.3)}
            },
            new String [] {"ID_Name", "Name", "Date", "Max_Credit"}
        ));
      scrollPane1 = new JScrollPane(table1);
      scrollPane1.setPreferredSize(new java.awt.Dimension(350,200));
      scrollPane1.setAlignmentX(LEFT_ALIGNMENT);
      scrollPane1.setViewportView(table1);
      getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
      scrollPane1.setAlignmentX(CENTER_ALIGNMENT);
      getContentPane().add(scrollPane1);
      table2.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                 {new Integer(1654),"12.14.2003",new Float(1235.3),new Float(23659.2),new Integer(2623)},
                    {new Integer(7954),"6.05.2004",new Float(4589.23),new Float(7845.12),new Integer(1265)},
                    {new Integer(1234),"18.11.2006",new Float(78412.2),new Float(7845.1),new Integer(2356)},
                    {new Integer(7327),"14,04,2006",new Float(98633),new Float(456412.3),new Integer(8953)},
            },
            new String [] {"ID_Order", "Date", "Sum","Credit", "ID_Name"}
        ));
        scrollPane2.setViewportView(table2);
        scrollPane2.setAlignmentX(LEFT_ALIGNMENT); 
        scrollPane2.setPreferredSize(new java.awt.Dimension(350,200)); 
        scrollPane2.setAlignmentX(CENTER_ALIGNMENT);
        getContentPane().add(scrollPane2);
        jButton1.setText("Заказ");
      jButton1.setAlignmentX(CENTER_ALIGNMENT);
        jButton1.setPreferredSize(new java.awt.Dimension(100,50));
        getContentPane().add(jButton1);
        pack();
    }
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new test().setVisible(true);
            }
        });
    }
  } 

Пойду дальше делать тестовое задание smile
PM MAIL ICQ Skype   Вверх
RedButterfly
Дата 25.8.2006, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Учусь
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 4.7.2005
Где: Уфа->Москва

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



При клике на мышку должно появляться новое окно:
Код

public class test extends JFrame {
        public test() {
        super("Тестик");
        initComponents();
        }
        public void initComponents() {
                       ...
        jButton1 = new JButton();
        jButton1.setText("Заказ");
        jButton1.setAlignmentX(CENTER_ALIGNMENT);
        jButton1.setPreferredSize(new java.awt.Dimension(100,50));
        jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jButton1MouseClicked(evt);
            }
        });
        getContentPane().add(jButton1);
        pack();
        }     
     private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
      JFrame frame = new JFrame("Заказ");
      frame.setBounds(300,300,400,400);
      
      getContentPane().setLayout(null);
      Label label1 = new Label("Клиент");
      label1.setBounds(320,320,370,350);
      getContentPane().setBackground(Color.red);
      getContentPane().add(label1);
      frame.setVisible(true);
          
    }
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new test().setVisible(true);
                  }
        });
    }
  }

Она появляется, но без метки. 
Что я неправильно делаю? 
.... Ведь потом мне надо будет чтобы окна взаимодействовали...
PM MAIL ICQ Skype   Вверх
powerOn
Дата 25.8.2006, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Цитата(RedButterfly @  25.8.2006,  14:56 Найти цитируемый пост)
Что я неправильно делаю? 

В строках 29 в добавляете JLabel на ContentPane, но не на тот.



Это сообщение отредактировал(а) MoonCat - 25.8.2006, 15:54


--------------------
user posted image нет времени думать - нужно писать КОД!

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


Учусь
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 4.7.2005
Где: Уфа->Москва

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



Теперь у меня окошечко вообще не добавляется  smile 
Код

class test extends JFrame {
    test2 frame2;
        test() {
        super("Тестик");
 ........
           jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                MouseClicked(evt);
            }
        });
        getContentPane().add(jButton1);
        pack();
        }     
    public void MouseClicked(java.awt.event.MouseEvent evt) {
      frame2 = new test2();    
    
    }
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new test().setVisible(true);
                  }
        });
    }
    class test2 extends JFrame{
     test2(){
     super("Заказ");
     Container contentpane = getContentPane();
          frame2.setBounds(300,300,400,400);
                contentpane.setLayout(null);
          Label label1 = new Label("Клиент");
          label1.setBounds(320,320,370,350);
          contentpane.setBackground(Color.red);
          contentpane.add(label1);
          frame2.setVisible(true);
    }
    }
  }

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


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

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