Учусь

Профиль
Группа: Участник
Сообщений: 132
Регистрация: 4.7.2005
Где: Уфа->Москва
Репутация: нет Всего: нет
|
Получается вот что: | Код | import javax.swing.JScrollPane; import java.util.*; import javax.swing.table.JTableHeader; import javax.swing.*; import java.awt.*; import java.awt.event.*; class test extends JFrame { private JTable table1; private JTable table2; public test() { super("Тестик"); initComponents(); } private void initComponents() { JButton jButton1; JScrollPane scrollPane1 = new JScrollPane(); JScrollPane scrollPane2 = new JScrollPane(); table1 = new JTable(); table2 = new JTable(); JTableHeader JTH = table1.getTableHeader(); JTH.setReorderingAllowed(false); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); table1.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {new Integer(1265),"Иванов","10.02.2006",new Integer (30000)}, {new Integer(2623),"Петров","30.03.2004",new Integer (15000)}, {new Integer(8953),"Сидоров","22.06.2006",new Integer (70000)}, {new Integer(2356),"Николаев","8.12.2005",new Integer (35000)}, {new Integer(2386),"Васильев","18.01.2005",new Integer (27000)} }, new String [] {"ID_Name", "Name", "Date", "Max_Credit"} )); scrollPane1 = new JScrollPane(table1); scrollPane1.setPreferredSize(new java.awt.Dimension(350,200)); scrollPane1.setViewportView(table1); getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS)); scrollPane1.setAlignmentX(CENTER_ALIGNMENT); getContentPane().add(scrollPane1); JTableHeader JTH2 = table2.getTableHeader(); JTH.setReorderingAllowed(false); table2.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {new Integer(1654),"12.14.2004",new Integer(3000),new Integer(2500),new Integer(2623)}, {new Integer(6598),"18.01.2005",new Integer(14000),new Integer(7000),new Integer(2386)}, {new Integer(7954),"6.05.2006",new Integer(12000),new Integer(5000),new Integer(1265)}, {new Integer(1234),"18.11.2006",new Integer(8000),new Integer(5000),new Integer(2356)}, {new Integer(7327),"14.07.2006",new Integer(20000),new Integer(8000),new Integer(8953)}, {new Integer(3727),"1.09.2006",new Integer(20000),new Integer(8000),new Integer(1265)}, }, new String [] {"ID_Order", "Date", "Sum","Credit", "ID_Name"} )); scrollPane2.setViewportView(table2); scrollPane2.setPreferredSize(new java.awt.Dimension(350,200)); scrollPane2.setAlignmentX(CENTER_ALIGNMENT); getContentPane().add(scrollPane2); 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(); } public void jButton1MouseClicked(java.awt.event.MouseEvent evt) { test2 frame2 = new test2(); frame2.setTitle("Заказ"); frame2.setVisible(true); } // что-то не работает!!! // public boolean isCellEditable(int rowIndex, int columnIndex) { // return true; // } public int getRowCount() { return getRowCount(); } public Object getValueAt(int row, int col) { return getValueAt(row, col); } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new test().setVisible(true); }});} class test2 extends JFrame { public test2() { initComponents(); } private void initComponents() { JLabel label1 = new javax.swing.JLabel("Клиент"); JLabel label2 = new javax.swing.JLabel("Дата заказа"); textfield1 = new JTextField(); textfield2 = new JTextField(); JLabel label3 = new javax.swing.JLabel("Сумма заказа"); textfield3 = new JTextField(); JLabel label4 = new javax.swing.JLabel("Желаемый кредит"); textfield4 = new JTextField(); JLabel label5 = new javax.swing.JLabel("Остаток"); textfield5 = new JTextField(); clearbutton = new JButton(); enterbutton = new JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); JPanel textpanel = new JPanel(); textpanel.setLayout(new BoxLayout(textpanel, BoxLayout.PAGE_AXIS)); label1.setAlignmentY(LEFT_ALIGNMENT); label1.setPreferredSize(new java.awt.Dimension(100,40)); textpanel.add(label1); combo = new JComboBox(); combo.addItem(""); combo.addItem("Новый клиент"); for(int i = 0; i < table1.getRowCount(); i++) combo.addItem(table1.getValueAt(i,1)); combo.setPreferredSize(new java.awt.Dimension(100,40)); flag=0; combo.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { a = new String("Новый клиент"); s = combo.getSelectedItem().toString(); //System.out.println(s); for(int n = 0; n< table1.getRowCount();n++) { if(table1.getModel().getValueAt(n,1).toString()== s){ index_ = table1.getModel().getValueAt(n,0).toString();// вот id клиента index = Integer.parseInt(table1.getModel().getValueAt(n,0).toString());// вот id клиента cred = Integer.parseInt(table1.getModel().getValueAt(n,3).toString());// вот max_credit клиента }} sum = 0; for(int w = 0; w< table2.getRowCount(); w++) { if(Integer.parseInt(table2.getValueAt(w,4).toString())== index){ z = Integer.parseInt(table2.getValueAt(w,3).toString()); sum += z ; // узнали сумму его кредитов } } ostatok = cred-sum; z2 = Integer.toString(ostatok); if(s=="Новый клиент") { java.util.Date date = new java.util.Date(System.currentTimeMillis()); java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd.MM.yyyy"); stringDate = sdf.format(date); textfield2.setText(stringDate); textfield5.setText(""); } else textfield5.setText(z2); }}); textpanel.add(combo); label2.setAlignmentY(LEFT_ALIGNMENT); label2.setPreferredSize(new java.awt.Dimension(150,40)); textpanel.add(label2); textfield2.setPreferredSize(new java.awt.Dimension(100,40)); textpanel.add(textfield2); label3.setAlignmentY(LEFT_ALIGNMENT); label3.setPreferredSize(new java.awt.Dimension(120,40)); textpanel.add(label3); textfield3.setPreferredSize(new java.awt.Dimension(100,40)); textpanel.add(textfield3); label4.setAlignmentY(LEFT_ALIGNMENT); label4.setPreferredSize(new java.awt.Dimension(170,40)); textpanel.add(label4); textfield4.setPreferredSize(new java.awt.Dimension(100,40)); textpanel.add(textfield4); label5.setAlignmentY(LEFT_ALIGNMENT); label5.setPreferredSize(new java.awt.Dimension(130,40)); textpanel.add(label5); if(s==a) textfield5.setToolTipText("Здесь значение 50% суммы заказа.\n 3000 <= Остаток <= 10000"); textfield5.setPreferredSize(new java.awt.Dimension(100,40)); textpanel.add(textfield5); if(s==a) textfield3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { t3 = new String(); t3 = textfield3.getText(); per = Integer.parseInt(t3); t555=per/2; textfield5.setText(Integer.toString(t555)); }}); JPanel buttonpanel = new JPanel(); buttonpanel.setLayout(new BoxLayout(buttonpanel, BoxLayout.LINE_AXIS)); buttonpanel.add(Box.createHorizontalGlue()); clearbutton.setText("Очистить"); buttonpanel.add(clearbutton); clearbutton.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { clearbuttonMouseClicked(evt); }}); enterbutton.setText("Принять"); enterbutton.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { enterbuttonMouseClicked(evt); }}); buttonpanel.add(Box.createRigidArea(new Dimension(50, 10))); buttonpanel.add(enterbutton); getContentPane().add(textpanel,BorderLayout.CENTER); getContentPane().add(buttonpanel,BorderLayout.PAGE_END); pack(); } private void clearbuttonMouseClicked(java.awt.event.MouseEvent evt) { textfield2.setText(""); textfield3.setText(""); textfield4.setText(""); textfield5.setText(""); } private void enterbuttonMouseClicked(java.awt.event.MouseEvent evt) { t3 = new String(); t3 = textfield3.getText(); t4 = new String(); t4 = textfield4.getText(); t44 = Integer.parseInt(t4); t5 = new String(); t5 = textfield5.getText(); t55 = Integer.parseInt(t5); if(s=="Новый клиент") { yesDialog yes_dlg = new yesDialog(this, true); yes_dlg.setVisible(true); } else { if(ostatok>=t44) { Random rnd = new Random(); int value = 1000 + rnd.nextInt(9000); String value_ = Integer.toString(value); ((javax.swing.table.DefaultTableModel) table2.getModel()).addRow( new String[] {value_, stringDate, t3, t4, index_}); } else { noDialog no_dlg = new noDialog(this, true); no_dlg.setVisible(true); } } } } class yesDialog extends JDialog { public final int EXIT_OK = 1; public final int EXIT_CANCEL = 0; private int exit_code = 0; public yesDialog(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); } private void initComponents() { getContentPane().setLayout(new FlowLayout()); JLabel ent_label = new JLabel("Принять???"); ent_label.setPreferredSize(new java.awt.Dimension(80,40)); getContentPane().add(ent_label); txt = new JTextField(); txt.setPreferredSize(new java.awt.Dimension(100,30)); getContentPane().add(txt); ok = new JButton("OK"); ok.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { okMouseClicked(evt); }}); getContentPane().add(ok); cansel = new JButton("Отмена"); getContentPane().add(cansel,BorderLayout.SOUTH); cansel.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { canselMouseClicked(evt); }}); getContentPane().add(cansel); pack(); } private void okMouseClicked(java.awt.event.MouseEvent evt) { b = txt.getText(); if((t55/2)>3000 && (t55/2)<=10000){ Random rnd2 = new Random(); int value2 = 1000 + rnd2.nextInt(9000); String value_2 = Integer.toString(value2); ((javax.swing.table.DefaultTableModel) table1.getModel()).addRow( new String[] {value_2, b, stringDate, Integer.toString(t555)}); } else { ostDialog ost_dlg = new ostDialog(this, true); ost_dlg.setVisible(true); } exit_code = EXIT_OK; dispose(); } private void canselMouseClicked(java.awt.event.MouseEvent evt) { exit_code = EXIT_CANCEL; dispose(); } public int getExit_code() { return exit_code; } class ostDialog extends JDialog { public final int EXIT_OK = 1; private int exit_code = 0; public ostDialog(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); } private void initComponents() { getContentPane().setLayout(new FlowLayout()); JLabel ent_label = new JLabel("3000 <= Остаток <= 10000"); ent_label.setPreferredSize(new java.awt.Dimension(350,40)); getContentPane().add(ent_label); JButton okbutton = new JButton("OK"); okbutton.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { okbuttonMouseClicked(evt); }}); getContentPane().add(ok); pack(); } private void okbuttonMouseClicked(java.awt.event.MouseEvent evt) { dispose(); } private javax.swing.JButton okButton; } } class noDialog extends JDialog { public final int EXIT_OK = 1; public final int EXIT_CANCEL = 0; private int exit_code = 0; public noDialog(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); } private void initComponents() { getContentPane().setLayout(new FlowLayout()); JLabel ent_label = new JLabel("Cумма кредитов от всех заказов превышает кредит!!!"); ent_label.setPreferredSize(new java.awt.Dimension(350,40)); getContentPane().add(ent_label); JButton okbutton = new JButton("OK"); okbutton.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { okbuttonMouseClicked(evt); }}); getContentPane().add(ok); pack(); } private void okbuttonMouseClicked(java.awt.event.MouseEvent evt) { dispose(); } private javax.swing.JButton okButton; } private javax.swing.JTextField textfield1; private javax.swing.JTextField textfield2; private javax.swing.JTextField textfield3; private javax.swing.JTextField textfield4; private javax.swing.JTextField textfield5; private javax.swing.JTextField txt; private javax.swing.JButton clearbutton; private javax.swing.JButton enterbutton; private javax.swing.JButton ok; private javax.swing.JButton cansel; public JDialog yes_dlg = new JDialog(); public JDialog no_dlg = new JDialog(); public JDialog ost_dlg = new JDialog(); public javax.swing.JComboBox combo; public String s, data, t3,t4,t5,z2,t45,stringDate,index_ , a,b; public int n, w,index, z,ind, data3,sum, sum_cr, cred,ostatok,flag,t44,t55,t555,per; } |
и такие ошибка ошибка: ругается на ostDialog ost_dlg = new ostDialog(this, true); говорит, что ostDialog(this, true) не опеределен. и когда запускаю и проверяю на условие, что значение 4-го текстового поля меньше чем пятого, то | Код | java.lang.NullPointerException at java.awt.Container.addImpl(Container.java:621) at java.awt.Container.add(Container.java:307) at test$noDialog.initComponents(test.java:360) at test$noDialog.<init>(test.java:348) at test$test2.enterbuttonMouseClicked(test.java:249) at test$test2.access$1(test.java:224) at test$4.mouseClicked(test.java:210) at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:208) at java.awt.Component.processMouseEvent(Component.java:5096) at java.awt.Component.processEvent(Component.java:4890) at java.awt.Container.processEvent(Container.java:1566) at java.awt.Component.dispatchEventImpl(Component.java:3598) at java.awt.Container.dispatchEventImpl(Container.java:1623) at java.awt.Component.dispatchEvent(Component.java:3439) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3450) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3174) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095) at java.awt.Container.dispatchEventImpl(Container.java:1609) at java.awt.Window.dispatchEventImpl(Window.java:1585) at java.awt.Component.dispatchEvent(Component.java:3439) at java.awt.EventQueue.dispatchEvent(EventQueue.java:450) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136) at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
|
а вроде правильно всё. даже класс ostDialog в yesDialog "положила"...
|