Программа с графическим интерфейсом пользователя, которая в главном окне позволяет редактировать данные - Java

Узнай цену своей работы

Формулировка задачи:

Есть такая задача Разработать программу с графическим интерфейсом пользователя, которая в главном окне позволяет редактировать данные в таблице и выводить результаты в соответствии с вариантом. Главное окно программы должно создаваться, как такое, что наследуется от стандартного класса JFrame, который относится к стандартной библиотеки интерфейсных элементов языка Java (Swing). Элементы, размещаемые в этом окне, также должны создаваться на основе библиотеки Swing 1. Внести в таблицу перечень сотрудников предприятия (порядковый номер, фамилия, имя, отчество, год рождения, зарплата). 2. Вывести количество сотрудников с возрастом менее 30 лет. 3. Вывести сотрудников с возрастом менее 30 лет по алфавиту. Помогите решить, пожалуйста Вот что уже сам сделал:
Листинг программы
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package my.numberaddition;
  7. import java.util.ArrayList;
  8. import java.util.Collections;
  9. /**
  10. *
  11. * @author TadeskiOne
  12. */
  13. public class StartFrame extends javax.swing.JFrame {
  14. /**
  15. * Creates new form StartFrame
  16. */
  17. public StartFrame() {
  18. initComponents();
  19. }
  20. /**
  21. * This method is called from within the constructor to initialize the form.
  22. * WARNING: Do NOT modify this code. The content of this method is always
  23. * regenerated by the Form Editor.
  24. */
  25. @SuppressWarnings("unchecked")
  26. // <editor-fold defaultstate="collapsed" desc="Generated Code">
  27. private void initComponents() {
  28. jScrollPane1 = new javax.swing.JScrollPane();
  29. jTable1 = new javax.swing.JTable();
  30. jScrollPane2 = new javax.swing.JScrollPane();
  31. jTable2 = new javax.swing.JTable();
  32. jButton1 = new javax.swing.JButton();
  33. jLabel1 = new javax.swing.JLabel();
  34. jLabel2 = new javax.swing.JLabel();
  35. jLabel3 = new javax.swing.JLabel();
  36. jTextField1 = new javax.swing.JTextField();
  37. jButton2 = new javax.swing.JButton();
  38. setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  39. setBackground(new java.awt.Color(255, 102, 0));
  40. jTable1.setFont(new java.awt.Font("Century Gothic", 0, 12)); // NOI18N
  41. jTable1.setModel(new javax.swing.table.DefaultTableModel(
  42. new Object [][] {
  43. {null, null, null, null, null, null},
  44. {null, null, null, null, null, null},
  45. {null, null, null, null, null, null}
  46. },
  47. new String [] {
  48. "Порядковый номер", "Фамилия", "Имя", "Отчество", "Дата рождения", "Зарплата"
  49. }
  50. ) {
  51. boolean[] canEdit = new boolean [] {
  52. false, false, false, false, false, false
  53. };
  54. public boolean isCellEditable(int rowIndex, int columnIndex) {
  55. return canEdit [columnIndex];
  56. }
  57. });
  58. jScrollPane1.setViewportView(jTable1);
  59. jTable2.setModel(new javax.swing.table.DefaultTableModel(
  60. new Object [][] {
  61. {null, null, null, null, null, null},
  62. {null, null, null, null, null, null},
  63. {null, null, null, null, null, null}
  64. },
  65. new String [] {
  66. "Порядковый номер", "Фамилия", "Имя", "Отчество", "Дата рождения", "Зарплата"
  67. }
  68. ) {
  69. Class[] types = new Class [] {
  70. java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Integer.class, java.lang.Object.class
  71. };
  72. public Class getColumnClass(int columnIndex) {
  73. return types [columnIndex];
  74. }
  75. });
  76. jScrollPane2.setViewportView(jTable2);
  77. jButton1.setFont(new java.awt.Font("Century Gothic", 0, 14)); // NOI18N
  78. jButton1.setText("Выполнить");
  79. jButton1.addActionListener(new java.awt.event.ActionListener() {
  80. public void actionPerformed(java.awt.event.ActionEvent evt) {
  81. jButton1ActionPerformed(evt);
  82. }
  83. });
  84. jLabel1.setBackground(new java.awt.Color(62, 200, 195));
  85. jLabel1.setFont(new java.awt.Font("Century Gothic", 0, 18)); // NOI18N
  86. jLabel1.setText("Исходящие данные: Сотрудники младше 30-ти лет ");
  87. jLabel2.setFont(new java.awt.Font("Century Gothic", 0, 18)); // NOI18N
  88. jLabel2.setText("Входящие данные: Сотрудники");
  89. jLabel3.setFont(new java.awt.Font("Century Gothic", 0, 14)); // NOI18N
  90. jLabel3.setText("Общее количество:");
  91. jButton2.setFont(new java.awt.Font("Century Gothic", 0, 14)); // NOI18N
  92. jButton2.setText("Добавить рядок");
  93. jButton2.addActionListener(new java.awt.event.ActionListener() {
  94. public void actionPerformed(java.awt.event.ActionEvent evt) {
  95. jButton2ActionPerformed(evt);
  96. }
  97. });
  98. javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  99. getContentPane().setLayout(layout);
  100. layout.setHorizontalGroup(
  101. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  102. .addGroup(layout.createSequentialGroup()
  103. .addContainerGap()
  104. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  105. .addGroup(layout.createSequentialGroup()
  106. .addComponent(jLabel3)
  107. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  108. .addComponent(jTextField1))
  109. .addComponent(jLabel1)
  110. .addComponent(jLabel2)
  111. .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 452, javax.swing.GroupLayout.PREFERRED_SIZE)
  112. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
  113. .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
  114. .addComponent(jButton1)
  115. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  116. .addComponent(jButton2))
  117. .addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 452, javax.swing.GroupLayout.PREFERRED_SIZE)))
  118. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  119. );
  120. layout.setVerticalGroup(
  121. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  122. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
  123. .addGap(7, 7, 7)
  124. .addComponent(jLabel2)
  125. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  126. .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 127, javax.swing.GroupLayout.PREFERRED_SIZE)
  127. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  128. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  129. .addComponent(jButton1)
  130. .addComponent(jButton2))
  131. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  132. .addComponent(jLabel1)
  133. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  134. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
  135. .addComponent(jLabel3)
  136. .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  137. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  138. .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 219, javax.swing.GroupLayout.PREFERRED_SIZE)
  139. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  140. );
  141. pack();
  142. }// </editor-fold>
  143. public static int getCurrentYear()
  144. {
  145. java.util.Calendar calendar = java.util.Calendar.getInstance(java.util.TimeZone.getDefault(), java.util.Locale.getDefault());
  146. calendar.setTime(new java.util.Date());
  147. return calendar.get(java.util.Calendar.YEAR);
  148. }
  149. public class Employees implements Comparable<Employees>{
  150. private Integer index;
  151. private String lastname;
  152. private String firstname;
  153. private String secondname;
  154. private Integer salary;
  155. private Integer age;
  156. public Employees() { }
  157. public Employees(Integer index, String lastname, String firstname, String secondname, Integer salary, Integer age) {
  158. this.index = index;
  159. this.lastname = lastname;
  160. this.firstname = firstname;
  161. this.secondname = secondname;
  162. this.salary = salary;
  163. this.age = age; }
  164. public Integer getIndex() {
  165. return index; }
  166. public void setIndex(Integer index) {
  167. this.index = index; }
  168. public String getLastname() {
  169. return lastname; }
  170. public void setLastname(String lastname) {
  171. this.lastname = lastname; }
  172. public String getFirstname() {
  173. return firstname; }
  174. public void setFirstname(String firstname) {
  175. this.firstname = firstname; }
  176. public String getSecondname() {
  177. return secondname; }
  178. public void setSecondname(String secondname) {
  179. this.secondname = secondname; }
  180. public Integer getSalary() {
  181. return salary; }
  182. public void setSalary(Integer salary) {
  183. this.salary = salary; }
  184. public Integer getAge() {
  185. return age; }
  186. public void setAge(Integer age) {
  187. this.age = age; }
  188. @Override
  189. public int compareTo(Employees t) {
  190. return this.age.compareTo(t.getAge()); }
  191. }
  192. private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
  193. // Тут должна быть функция добавления рядка к таблице с входящими данными
  194. }
  195. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
  196. ArrayList<Employees>arr=new ArrayList<>();
  197. int sum = 0;
  198. for (int i=0; i<jTable1.getRowCount(); i++){
  199. Integer age = (Integer)jTable1.getValueAt(i, 4);
  200. if(getCurrentYear()- age < 30){
  201. Integer ind = (Integer)jTable1.getValueAt(i, 0);
  202. String ln = (String)jTable1.getValueAt(i, 1);
  203. String fn = (String)jTable1.getValueAt(i, 2);
  204. String sn = (String)jTable1.getValueAt(i, 3);
  205. Integer sal = (Integer)jTable1.getValueAt(i, 5);
  206. arr.add(new Employees(ind, ln, fn, sn, age, sal));
  207. sum = sum+1;
  208. }
  209. }
  210. Collections.sort(arr);
  211. for(int i=0; i<arr.size(); i++){
  212. Employees rgs = new Employees();
  213. rgs=(Employees)arr.get(i);
  214. System.out.println(rgs.getIndex()+" "+rgs.getLastname()+" "+rgs.getFirstname()+" "+rgs.getSecondname()+" "+rgs.getAge()+" "+rgs.getSalary());
  215. jTable2.setValueAt(rgs.getIndex(),i,0);
  216. jTable2.setValueAt(rgs.getLastname(),i,1);
  217. jTable2.setValueAt(rgs.getFirstname(),i,2);
  218. jTable2.setValueAt(rgs.getSecondname(),i,3);
  219. jTable2.setValueAt(rgs.getAge(),i,4);
  220. jTable2.setValueAt(rgs.getSalary(),i,5);
  221. }
  222. String sum1 = Integer.toString(sum);
  223. jTextField1.setText(sum1);
  224. }
  225. /**
  226. * @param args the command line arguments
  227. */
  228. public static void main(String args[]) {
  229. /* Set the Nimbus look and feel */
  230. //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
  231. /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
  232. * For details see [url]http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html[/url]
  233. */
  234. try {
  235. for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
  236. if ("Nimbus".equals(info.getName())) {
  237. javax.swing.UIManager.setLookAndFeel(info.getClassName());
  238. break;
  239. }
  240. }
  241. } catch (ClassNotFoundException ex) {
  242. java.util.logging.Logger.getLogger(StartFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  243. } catch (InstantiationException ex) {
  244. java.util.logging.Logger.getLogger(StartFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  245. } catch (IllegalAccessException ex) {
  246. java.util.logging.Logger.getLogger(StartFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  247. } catch (javax.swing.UnsupportedLookAndFeelException ex) {
  248. java.util.logging.Logger.getLogger(StartFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  249. }
  250. //</editor-fold>
  251. /* Create and display the form */
  252. java.awt.EventQueue.invokeLater(new Runnable() {
  253. public void run() {
  254. new StartFrame().setVisible(true);
  255. }
  256. });
  257. }
  258. // Variables declaration - do not modify
  259. private javax.swing.JButton jButton1;
  260. private javax.swing.JButton jButton2;
  261. private javax.swing.JLabel jLabel1;
  262. private javax.swing.JLabel jLabel2;
  263. private javax.swing.JLabel jLabel3;
  264. private javax.swing.JScrollPane jScrollPane1;
  265. private javax.swing.JScrollPane jScrollPane2;
  266. private javax.swing.JTable jTable1;
  267. private javax.swing.JTable jTable2;
  268. private javax.swing.JTextField jTextField1;
  269. // End of variables declaration
  270. }
Но это не работает

Решение задачи: «Программа с графическим интерфейсом пользователя, которая в главном окне позволяет редактировать данные»

textual
Листинг программы
  1. Integer age = (Integer)jTable1.getValueAt(i, 4);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы