Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. package src;
  2. import javax.swing.JOptionPane;
  3. import javax.swing.table.DefaultTableModel;
  4.  
  5. public class ItemUI extends javax.swing.JFrame {
  6.  
  7. public ItemList theList = new ItemList();
  8. public ItemList soldList = new ItemList();
  9. public double totalSale = 0;
  10.  
  11. public ItemUI() {
  12. initComponents();
  13. panel1.setVisible(false);
  14. panel2.setVisible(true);
  15. panel3.setVisible(false);
  16. panel4.setVisible(false);
  17. }
  18.  
  19. @SuppressWarnings("unchecked")
  20. private void initComponents(){
  21. panel1 = new javax.swing.JPanel();
  22. nameLabel = new javax.swing.JLabel();
  23. ItemNumberLabel = new javax.swing.JLabel();
  24. qtyLabel = new javax.swing.JLabel();
  25. priceLabel = new javax.swing.JLabel();
  26. priceField = new javax.swing.JTextField();
  27. qtyField = new javax.swing.JTextField();
  28. numberField = new javax.swing.JTextField();
  29. nameField = new javax.swing.JTextField();
  30. newButton = new javax.swing.JButton();
  31. saveButton = new javax.swing.JButton();
  32. backButton = new javax.swing.JButton();
  33. exitButton = new javax.swing.JButton();
  34. panel2 = new javax.swing.JPanel();
  35. purchaseButton1 = new javax.swing.JButton();
  36. stockButton = new javax.swing.JButton();
  37. totalSaleButton = new javax.swing.JButton();
  38. showBillLabel = new javax.swing.JLabel();
  39. jButton1 = new javax.swing.JButton();
  40. ItemButton = new javax.swing.JButton();
  41. jButton2 = new javax.swing.JButton();
  42. shopNameLabel = new javax.swing.JLabel();
  43. jButton4 = new javax.swing.JButton();
  44. jButton5 = new javax.swing.JButton();
  45. panel3 = new javax.swing.JPanel();
  46. hmButton = new javax.swing.JButton();
  47. jScrollPane2 = new javax.swing.JScrollPane();
  48. dataTable = new javax.swing.JTable();
  49. panel4 = new javax.swing.JPanel();
  50. jLabel2 = new javax.swing.JLabel();
  51. purchaseLabel1 = new javax.swing.JLabel();
  52. item1Label1 = new javax.swing.JLabel();
  53. qtLabel1 = new javax.swing.JLabel();
  54. pLabel1 = new javax.swing.JLabel();
  55. subtotalLabel1 = new javax.swing.JLabel();
  56. subtotal1Label1 = new javax.swing.JLabel();
  57. p1Label1 = new javax.swing.JLabel();
  58. qt1Label1 = new javax.swing.JLabel();
  59. item2Label1 = new javax.swing.JLabel();
  60. qt2Label2 = new javax.swing.JLabel();
  61. qt3Label2 = new javax.swing.JLabel();
  62. item3Label1 = new javax.swing.JLabel();
  63. qt3Label3 = new javax.swing.JLabel();
  64. qt2Label3 = new javax.swing.JLabel();
  65. subtotal2Label1 = new javax.swing.JLabel();
  66. subtotal3Label1 = new javax.swing.JLabel();
  67. qt4Label2 = new javax.swing.JLabel();
  68. subtotal4Label1 = new javax.swing.JLabel();
  69. subtotal5Label1 = new javax.swing.JLabel();
  70. subtotal6Label1 = new javax.swing.JLabel();
  71. jSeparator2 = new javax.swing.JSeparator();
  72. billLabel1 = new javax.swing.JLabel();
  73. totalBillLabel1 = new javax.swing.JLabel();
  74. qt6Label2 = new javax.swing.JLabel();
  75. qt5Label2 = new javax.swing.JLabel();
  76. qt4Label3 = new javax.swing.JLabel();
  77. qt5Label3 = new javax.swing.JLabel();
  78. qt6Label3 = new javax.swing.JLabel();
  79. item6Label1 = new javax.swing.JLabel();
  80. item5Label1 = new javax.swing.JLabel();
  81. item4Label1 = new javax.swing.JLabel();
  82.  
  83. setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  84. setTitle("Aplikasi Cash Register ");
  85. setResizable(false);
  86.  
  87. panel1.setFocusable(false);
  88. panel1.setMaximumSize(new java.awt.Dimension(460, 360));
  89. panel1.setRequestFocusEnabled(false);
  90.  
  91. nameLabel.setText("Nama :");
  92. ItemNumberLabel.setText("Kode Item :");
  93. qtyLabel.setText("Kuantitas :");
  94. priceLabel.setText("Harga :");
  95.  
  96. priceField.addActionListener(new java.awt.event.ActionListener() {
  97. public void actionPerformed(java.awt.event.ActionEvent evt) {
  98. priceFieldActionPerformed(evt);
  99. }
  100. });
  101. priceField.addKeyListener(new java.awt.event.KeyAdapter() {
  102. public void keyTyped(java.awt.event.KeyEvent evt) {
  103. priceFieldKeyTyped(evt);
  104. }
  105. });
  106.  
  107. qtyField.addActionListener(new java.awt.event.ActionListener() {
  108. public void actionPerformed(java.awt.event.ActionEvent evt) {
  109. qtyFieldActionPerformed(evt);
  110. }
  111. });
  112. qtyField.addKeyListener(new java.awt.event.KeyAdapter() {
  113. public void keyTyped(java.awt.event.KeyEvent evt) {
  114. qtyFieldKeyTyped(evt);
  115. }
  116. });
  117.  
  118. numberField.addFocusListener(new java.awt.event.FocusAdapter() {
  119. public void focusLost(java.awt.event.FocusEvent evt) {
  120. numberFieldFocusLost(evt);
  121. }
  122. });
  123. numberField.addActionListener(new java.awt.event.ActionListener() {
  124. public void actionPerformed(java.awt.event.ActionEvent evt) {
  125. numberFieldActionPerformed(evt);
  126. }
  127. });
  128. numberField.addKeyListener(new java.awt.event.KeyAdapter() {
  129. public void keyTyped(java.awt.event.KeyEvent evt) {
  130. numberFieldKeyTyped(evt);
  131. }
  132. });
  133.  
  134. nameField.addActionListener(new java.awt.event.ActionListener() {
  135. public void actionPerformed(java.awt.event.ActionEvent evt) {
  136. nameFieldActionPerformed(evt);
  137. }
  138. });
  139. nameField.addKeyListener(new java.awt.event.KeyAdapter() {
  140. public void keyTyped(java.awt.event.KeyEvent evt) {
  141. nameFieldKeyTyped(evt);
  142. }
  143. });
  144.  
  145. newButton.setText("Baru");
  146. newButton.addActionListener(new java.awt.event.ActionListener() {
  147. public void actionPerformed(java.awt.event.ActionEvent evt) {
  148. newButtonActionPerformed(evt);
  149. }
  150. });
  151.  
  152. saveButton.setText("Simpan");
  153. saveButton.addActionListener(new java.awt.event.ActionListener() {
  154. public void actionPerformed(java.awt.event.ActionEvent evt) {
  155. saveButtonActionPerformed(evt);
  156. }
  157. });
  158.  
  159. backButton.setText("Kembali");
  160. backButton.addActionListener(new java.awt.event.ActionListener() {
  161. public void actionPerformed(java.awt.event.ActionEvent evt) {
  162. backButtonActionPerformed(evt);
  163. }
  164. });
  165.  
  166. exitButton.setText("Keluar");
  167. exitButton.addActionListener(new java.awt.event.ActionListener() {
  168. public void actionPerformed(java.awt.event.ActionEvent evt) {
  169. exitButtonActionPerformed(evt);
  170. }
  171. });
  172.  
  173. javax.swing.GroupLayout panel1Layout = new javax.swing.GroupLayout(panel1);
  174. panel1.setLayout(panel1Layout);
  175. panel1Layout.setHorizontalGroup(
  176. panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  177. .addGroup(panel1Layout.createSequentialGroup()
  178. .addGroup(panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  179. .addGroup(panel1Layout.createSequentialGroup()
  180. .addContainerGap()
  181. .addGroup(panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  182. .addComponent(nameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
  183. .addComponent(ItemNumberLabel)
  184. .addComponent(qtyLabel)
  185. .addComponent(priceLabel))
  186. .addGap(69, 69, 69)
  187. .addGroup(panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  188. .addComponent(priceField, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
  189. .addComponent(qtyField, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
  190. .addComponent(numberField, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
  191. .addComponent(nameField, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)))
  192. .addGroup(panel1Layout.createSequentialGroup()
  193. .addGap(23, 23, 23)
  194. .addComponent(newButton)
  195. .addGap(18, 18, 18)
  196. .addComponent(saveButton)
  197. .addGap(18, 18, 18)
  198. .addComponent(backButton)
  199. .addGap(18, 18, 18)
  200. .addComponent(exitButton, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)))
  201. .addContainerGap(72, Short.MAX_VALUE))
  202. );
  203. panel1Layout.setVerticalGroup(
  204. panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  205. .addGroup(panel1Layout.createSequentialGroup()
  206. .addContainerGap()
  207. .addGroup(panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  208. .addComponent(nameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  209. .addComponent(nameField, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
  210. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  211. .addGroup(panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  212. .addComponent(ItemNumberLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  213. .addComponent(numberField, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
  214. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  215. .addGroup(panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  216. .addComponent(qtyLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  217. .addComponent(qtyField, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
  218. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  219. .addGroup(panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  220. .addComponent(priceLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
  221. .addComponent(priceField, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
  222. .addGap(18, 18, 18)
  223. .addGroup(panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  224. .addComponent(saveButton)
  225. .addComponent(backButton)
  226. .addComponent(newButton)
  227. .addComponent(exitButton))
  228. .addContainerGap(268, Short.MAX_VALUE))
  229. );
  230.  
  231.  
  232. panel2.setFocusable(false);
  233. panel2.setRequestFocusEnabled(false);
  234. shopNameLabel.setText(" -= McDonald =- ");
  235. purchaseButton1.setText("Pembelian");
  236. purchaseButton1.setFocusPainted(false);
  237. purchaseButton1.setFocusable(false);
  238.  
  239. purchaseButton1.addActionListener(new java.awt.event.ActionListener() {
  240. public void actionPerformed(java.awt.event.ActionEvent evt) {
  241. purchaseButton1ActionPerformed(evt);
  242. }
  243. });
  244.  
  245. stockButton.setText("Tambah Stok");
  246. stockButton.addActionListener(new java.awt.event.ActionListener() {
  247. public void actionPerformed(java.awt.event.ActionEvent evt) {
  248. stockButtonActionPerformed(evt);
  249. }
  250. });
  251.  
  252. totalSaleButton.setText("Total Harga");
  253. totalSaleButton.addActionListener(new java.awt.event.ActionListener() {
  254. public void actionPerformed(java.awt.event.ActionEvent evt) {
  255. totalSaleButtonActionPerformed(evt);
  256. }
  257. });
  258.  
  259. jButton1.setText("Hapus Item");
  260. jButton1.addActionListener(new java.awt.event.ActionListener() {
  261. public void actionPerformed(java.awt.event.ActionEvent evt) {
  262. jButton1ActionPerformed(evt);
  263. }
  264. });
  265.  
  266. ItemButton.setText("Tambah Item");
  267. ItemButton.addActionListener(new java.awt.event.ActionListener() {
  268. public void actionPerformed(java.awt.event.ActionEvent evt) {
  269. ItemButtonActionPerformed(evt);
  270. }
  271. });
  272.  
  273. jButton2.setText("Daftar Item");
  274. jButton2.addActionListener(new java.awt.event.ActionListener() {
  275. public void actionPerformed(java.awt.event.ActionEvent evt) {
  276. jButton2ActionPerformed(evt);
  277. }
  278. });
  279.  
  280. jButton4.setText("Receipt");
  281. jButton4.addActionListener(new java.awt.event.ActionListener() {
  282. public void actionPerformed(java.awt.event.ActionEvent evt) {
  283. jButton4ActionPerformed(evt);
  284. }
  285. });
  286.  
  287. jButton5.setText("Keluar");
  288. jButton5.addActionListener(new java.awt.event.ActionListener() {
  289. public void actionPerformed(java.awt.event.ActionEvent evt) {
  290. jButton5ActionPerformed(evt);
  291. }
  292. });
  293.  
  294. javax.swing.GroupLayout panel2Layout = new javax.swing.GroupLayout(panel2);
  295. panel2.setLayout(panel2Layout);
  296. panel2Layout.setHorizontalGroup(
  297. panel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  298. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panel2Layout.createSequentialGroup()
  299. .addContainerGap(25, Short.MAX_VALUE)
  300. .addComponent(shopNameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 356, javax.swing.GroupLayout.PREFERRED_SIZE)
  301. .addGap(25, 25, 25))
  302. .addGroup(panel2Layout.createSequentialGroup()
  303. .addGap(37, 37, 37)
  304. .addGroup(panel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
  305. .addGroup(panel2Layout.createSequentialGroup()
  306. .addGroup(panel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  307. .addGroup(panel2Layout.createSequentialGroup()
  308. .addComponent(stockButton)
  309. .addGap(18, 18, 18)
  310. .addComponent(purchaseButton1))
  311. .addComponent(showBillLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 141, javax.swing.GroupLayout.PREFERRED_SIZE))
  312. .addGap(18, 18, 18)
  313. .addComponent(totalSaleButton))
  314. .addGroup(panel2Layout.createSequentialGroup()
  315. .addGroup(panel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  316. .addGroup(panel2Layout.createSequentialGroup()
  317. .addComponent(ItemButton)
  318. .addGap(18, 18, 18)
  319. .addComponent(jButton1))
  320. .addComponent(jButton4))
  321. .addGap(18, 18, 18)
  322. .addGroup(panel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
  323. .addComponent(jButton2)
  324. .addComponent(jButton5))))
  325. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  326. );
  327.  
  328. panel2Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {ItemButton, jButton1, jButton2, purchaseButton1, stockButton, totalSaleButton});
  329.  
  330. panel2Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jButton4, jButton5});
  331.  
  332. panel2Layout.setVerticalGroup(
  333. panel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  334. .addGroup(panel2Layout.createSequentialGroup()
  335. .addContainerGap()
  336. .addComponent(shopNameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
  337. .addGap(31, 31, 31)
  338. .addGroup(panel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  339. .addComponent(stockButton)
  340. .addComponent(purchaseButton1)
  341. .addComponent(totalSaleButton))
  342. .addGap(18, 18, 18)
  343. .addComponent(showBillLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE)
  344. .addGap(26, 26, 26)
  345. .addGroup(panel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  346. .addComponent(jButton2)
  347. .addComponent(jButton1)
  348. .addComponent(ItemButton))
  349. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 58, Short.MAX_VALUE)
  350. .addGroup(panel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  351. .addComponent(jButton4)
  352. .addComponent(jButton5))
  353. .addGap(26, 26, 26))
  354. );
  355.  
  356. panel2Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {ItemButton, jButton1, jButton2, purchaseButton1, stockButton, totalSaleButton});
  357. hmButton.setText("Menu Utama");
  358. hmButton.addActionListener(new java.awt.event.ActionListener() {
  359. public void actionPerformed(java.awt.event.ActionEvent evt) {
  360. hmButtonActionPerformed(evt);
  361. }
  362. });
  363.  
  364. dataTable.setModel(new javax.swing.table.DefaultTableModel(
  365. new Object [][] {
  366. {null, null, null, null},
  367. {null, null, null, null},
  368. {null, null, null, null},
  369. {null, null, null, null}
  370. },
  371. new String [] {
  372. "Kode Item", "Nama Item", "Kuantitas", "Harga"
  373. })
  374. {
  375. Class[] types = new Class [] {
  376. java.lang.Integer.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class
  377. };
  378.  
  379. public Class getColumnClass(int columnIndex) {
  380. return types [columnIndex];
  381. }
  382. });
  383. jScrollPane2.setViewportView(dataTable);
  384.  
  385. javax.swing.GroupLayout panel3Layout = new javax.swing.GroupLayout(panel3);
  386. panel3.setLayout(panel3Layout);
  387. panel3Layout.setHorizontalGroup(
  388. panel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  389. .addGroup(panel3Layout.createSequentialGroup()
  390. .addContainerGap()
  391. .addComponent(hmButton)
  392. .addContainerGap(219, Short.MAX_VALUE))
  393. .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
  394. );
  395. panel3Layout.setVerticalGroup(
  396. panel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  397. .addGroup(panel3Layout.createSequentialGroup()
  398. .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 403, javax.swing.GroupLayout.PREFERRED_SIZE)
  399. .addGap(13, 13, 13)
  400. .addComponent(hmButton)
  401. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  402. );
  403.  
  404.  
  405. javax.swing.GroupLayout panel4Layout = new javax.swing.GroupLayout(panel4);
  406. panel4.setLayout(panel4Layout);
  407. panel4Layout.setHorizontalGroup(
  408. panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  409. .addGroup(panel4Layout.createSequentialGroup()
  410. .addGap(35, 35, 35)
  411. .addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  412. .addComponent(item2Label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  413. .addComponent(purchaseLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 101, Short.MAX_VALUE)
  414. .addComponent(item1Label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  415. .addComponent(item3Label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  416. .addComponent(item4Label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  417. .addComponent(item5Label1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  418. .addComponent(item6Label1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  419. .addGap(18, 18, 18)
  420. .addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  421. .addComponent(qtLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE)
  422. .addComponent(qt5Label3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  423. .addComponent(qt4Label3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  424. .addComponent(qt3Label2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  425. .addComponent(qt2Label2, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)
  426. .addComponent(qt6Label3, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE)
  427. .addComponent(qt1Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE))
  428. .addGap(18, 18, 18)
  429. .addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  430. .addComponent(pLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 65, Short.MAX_VALUE)
  431. .addComponent(p1Label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  432. .addComponent(qt2Label3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  433. .addComponent(qt3Label3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  434. .addComponent(qt4Label2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  435. .addComponent(qt5Label2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  436. .addComponent(qt6Label2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  437. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  438. .addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  439. .addGroup(panel4Layout.createSequentialGroup()
  440. .addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  441. .addComponent(subtotal3Label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  442. .addComponent(subtotal4Label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  443. .addComponent(subtotal5Label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  444. .addComponent(subtotal2Label1, javax.swing.GroupLayout.DEFAULT_SIZE, 65, Short.MAX_VALUE)
  445. .addComponent(subtotal6Label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  446. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  447. .addGroup(panel4Layout.createSequentialGroup()
  448. .addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
  449. .addComponent(subtotal1Label1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  450. .addComponent(subtotalLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 68, Short.MAX_VALUE))
  451. .addGap(21, 21, 21))))
  452. .addGroup(panel4Layout.createSequentialGroup()
  453. .addContainerGap()
  454. .addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  455. .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  456. .addComponent(jSeparator2))
  457. .addContainerGap())
  458. .addGroup(panel4Layout.createSequentialGroup()
  459. .addGap(168, 168, 168)
  460. .addComponent(billLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE)
  461. .addGap(18, 18, 18)
  462. .addComponent(totalBillLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE)
  463. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  464. );
  465. panel4Layout.setVerticalGroup(
  466. panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  467. .addGroup(panel4Layout.createSequentialGroup()
  468. .addContainerGap()
  469. .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
  470. .addGap(18, 18, 18)
  471. .addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  472. .addComponent(purchaseLabel1)
  473. .addComponent(qtLabel1)
  474. .addComponent(pLabel1)
  475. .addComponent(subtotalLabel1))
  476. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  477. .addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  478. .addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  479. .addGroup(panel4Layout.createSequentialGroup()
  480. .addComponent(item1Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  481. .addGap(18, 18, 18)
  482. .addComponent(item2Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  483. .addGap(18, 18, 18)
  484. .addComponent(item3Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  485. .addGap(18, 18, 18)
  486. .addComponent(item4Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  487. .addGap(18, 18, 18)
  488. .addComponent(item5Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  489. .addGap(18, 18, 18)
  490. .addComponent(item6Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
  491. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panel4Layout.createSequentialGroup()
  492. .addComponent(qt1Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  493. .addGap(18, 18, 18)
  494. .addComponent(qt2Label2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  495. .addGap(18, 18, 18)
  496. .addComponent(qt3Label2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  497. .addGap(18, 18, 18)
  498. .addComponent(qt4Label3, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  499. .addGap(18, 18, 18)
  500. .addComponent(qt5Label3, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  501. .addGap(18, 18, 18)
  502. .addComponent(qt6Label3, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)))
  503. .addGroup(panel4Layout.createSequentialGroup()
  504. .addComponent(p1Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  505. .addGap(18, 18, 18)
  506. .addComponent(qt2Label3, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  507. .addGap(18, 18, 18)
  508. .addComponent(qt3Label3, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  509. .addGap(18, 18, 18)
  510. .addComponent(qt4Label2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  511. .addGap(18, 18, 18)
  512. .addComponent(qt5Label2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  513. .addGap(18, 18, 18)
  514. .addComponent(qt6Label2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
  515. .addGroup(panel4Layout.createSequentialGroup()
  516. .addComponent(subtotal1Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  517. .addGap(18, 18, 18)
  518. .addComponent(subtotal2Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  519. .addGap(18, 18, 18)
  520. .addComponent(subtotal3Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  521. .addGap(18, 18, 18)
  522. .addComponent(subtotal4Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  523. .addGap(18, 18, 18)
  524. .addComponent(subtotal5Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  525. .addGap(18, 18, 18)
  526. .addComponent(subtotal6Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)))
  527. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  528. .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
  529. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  530. .addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  531. .addComponent(billLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
  532. .addGroup(panel4Layout.createSequentialGroup()
  533. .addComponent(totalBillLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  534. .addGap(5, 5, 5)))
  535. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  536. );
  537.  
  538. javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  539. getContentPane().setLayout(layout);
  540. layout.setHorizontalGroup(
  541. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  542. .addComponent(panel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  543. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  544. .addGroup(layout.createSequentialGroup()
  545. .addGap(0, 0, Short.MAX_VALUE)
  546. .addComponent(panel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  547. .addGap(0, 0, Short.MAX_VALUE)))
  548. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  549. .addGroup(layout.createSequentialGroup()
  550. .addGap(0, 0, Short.MAX_VALUE)
  551. .addComponent(panel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  552. .addGap(0, 0, Short.MAX_VALUE)))
  553. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  554. .addGroup(layout.createSequentialGroup()
  555. .addGap(0, 0, Short.MAX_VALUE)
  556. .addComponent(panel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  557. .addGap(0, 0, Short.MAX_VALUE)))
  558. );
  559. layout.setVerticalGroup(
  560. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  561. .addComponent(panel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  562. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  563. .addGroup(layout.createSequentialGroup()
  564. .addGap(0, 0, Short.MAX_VALUE)
  565. .addComponent(panel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  566. .addGap(0, 0, Short.MAX_VALUE)))
  567. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  568. .addGroup(layout.createSequentialGroup()
  569. .addGap(0, 0, Short.MAX_VALUE)
  570. .addComponent(panel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  571. .addGap(0, 0, Short.MAX_VALUE)))
  572. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  573. .addGroup(layout.createSequentialGroup()
  574. .addGap(0, 0, Short.MAX_VALUE)
  575. .addComponent(panel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  576. .addGap(0, 0, Short.MAX_VALUE)))
  577. );
  578.  
  579. pack();
  580. }
  581.  
  582. private void priceFieldActionPerformed(java.awt.event.ActionEvent evt) {
  583.  
  584. }
  585.  
  586. private void qtyFieldActionPerformed(java.awt.event.ActionEvent evt) {
  587.  
  588. }
  589.  
  590. private void numberFieldActionPerformed(java.awt.event.ActionEvent evt) {
  591.  
  592. }
  593.  
  594. private void nameFieldActionPerformed(java.awt.event.ActionEvent evt) {
  595.  
  596. }
  597.  
  598. public void reset() {
  599. nameField.setText("");
  600. numberField.setText("");
  601. qtyField.setText("");
  602. priceField.setText("");
  603. nameField.requestFocus();
  604. }
  605. private void newButtonActionPerformed(java.awt.event.ActionEvent evt) {
  606. reset();
  607. }
  608.  
  609. private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {
  610. String name;
  611. int itemNumber;
  612. int qty;
  613. double price;
  614. name = nameField.getText();
  615. itemNumber = Integer.parseInt(numberField.getText());
  616. qty = Integer.parseInt(qtyField.getText());
  617. price = Double.parseDouble(priceField.getText());
  618.  
  619. Item current = theList.first;
  620. while (current != null) {
  621. if (itemNumber == current.itemNumber) {
  622. JOptionPane.showMessageDialog(this, "Kode item sudah digunakan.");
  623. return;
  624. }
  625. break;
  626. }
  627.  
  628. if (price < 0) {
  629. JOptionPane.showMessageDialog(null, "Harga tidak dapat negatif.");
  630. return;
  631. } else if (qty < 0) {
  632. JOptionPane.showMessageDialog(null, "Kuantitas tidak dapat negatif.");
  633. return;
  634. } else {
  635. theList.insertFirst(name, itemNumber, qty, price);
  636. JOptionPane.showMessageDialog(null, "Item disimpan!");
  637. }
  638. reset();
  639. }
  640.  
  641. private void backButtonActionPerformed(java.awt.event.ActionEvent evt) {
  642. panel1.setVisible(false);
  643. panel2.setVisible(true);
  644. panel3.setVisible(false);
  645. panel4.setVisible(false);
  646. }
  647.  
  648. private void exitButtonActionPerformed(java.awt.event.ActionEvent evt) {
  649. System.exit(0);
  650. }
  651.  
  652. private void numberFieldFocusLost(java.awt.event.FocusEvent evt) {
  653.  
  654. }
  655.  
  656. private void purchaseButton1ActionPerformed(java.awt.event.ActionEvent evt) {
  657.  
  658. int itNum, qty;
  659. double total = 0;
  660. panel1.hide();
  661. panel3.hide();
  662. panel2.setVisible(true);
  663. try {
  664. String input = JOptionPane.showInputDialog("Masukkan Kode Item :");
  665. itNum = Integer.parseInt(input);
  666. String input1 = JOptionPane.showInputDialog("Masukkan Kuantitas :");
  667. qty = Integer.parseInt(input1);
  668.  
  669. if (theList.isEmpty()) {
  670. JOptionPane.showMessageDialog(null, "Maaf! Daftar item kosong.");
  671. return;
  672. }
  673. int a = JOptionPane.showConfirmDialog(null, "Ingin membeli item lain?");
  674.  
  675. if (a == JOptionPane.YES_OPTION) {
  676. this.purchaseButton1ActionPerformed(evt);
  677.  
  678.  
  679. } else if (a == JOptionPane.CANCEL_OPTION) {
  680. return;
  681. }
  682.  
  683.  
  684. if (qty > theList.find(itNum).qty) {
  685. JOptionPane.showMessageDialog(null, "Maaf! Stok item habis");
  686. return;
  687. } else if (itNum != theList.find(itNum).itemNumber) {
  688. JOptionPane.showMessageDialog(this, "Maaf! Item tidak ada dalam daftar.");
  689. return;
  690. } else {
  691. theList.find(itNum).qty -= qty;
  692. total += theList.find(itNum).price * qty;
  693. totalSale += total;
  694. }
  695. showBillLabel.setText("Harga Pembelian : " + total);
  696. if(a != 2){
  697. soldList.insertFirst(theList.find(itNum).name, itNum, qty, theList.find(itNum).price*qty);
  698. }
  699.  
  700. } catch (Exception ex) {
  701. JOptionPane.showMessageDialog(this, "Maaf! Item tidak ada dalam daftar.");
  702. }
  703. }
  704.  
  705. private void stockButtonActionPerformed(java.awt.event.ActionEvent evt) {
  706. int itNum, qty;
  707.  
  708. try {
  709. String input = JOptionPane.showInputDialog("Masukkan Kode Item :");
  710. itNum = Integer.parseInt(input);
  711. String input1 = JOptionPane.showInputDialog("Masukkan Kuantitas :");
  712. qty = Integer.parseInt(input1);
  713. if (theList.isEmpty()) {
  714. JOptionPane.showMessageDialog(this, "Daftar item kosong.");
  715. } else {
  716. theList.find(itNum).qty += qty;
  717. JOptionPane.showMessageDialog(this, "Stok Ditambahkan!");
  718. }
  719. } catch (Exception ex) {
  720. JOptionPane.showMessageDialog(this, ex);
  721. }
  722. }
  723.  
  724. private void totalSaleButtonActionPerformed(java.awt.event.ActionEvent evt) {
  725. showBillLabel.setText("Total Pembelian : " + totalSale);
  726. }
  727.  
  728. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
  729. int itNum;
  730. try {
  731. String input = JOptionPane.showInputDialog("Masukkan Kode Item :");
  732. itNum = Integer.parseInt(input);
  733. if (theList.isEmpty()) {
  734. JOptionPane.showMessageDialog(this, "Daftar Kosong!");
  735. } else {
  736. int it = theList.find(itNum).itemNumber;
  737. if (it == itNum) {
  738. theList.delete(it);
  739. JOptionPane.showMessageDialog(this, "Item dihapus!");
  740. } else {
  741. JOptionPane.showMessageDialog(this, "Kode Item Invalid!");
  742. }
  743. }
  744. } catch (Exception ex) {
  745. JOptionPane.showMessageDialog(this, "Kode Item Invalid!");
  746. }
  747. }
  748.  
  749. private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
  750. if (theList.isEmpty()) {
  751. JOptionPane.showMessageDialog(this, "Daftar Item kosong!");
  752. } else {
  753. panel1.setVisible(false);
  754. panel2.setVisible(false);
  755. panel3.setVisible(true);
  756. panel4.setVisible(false);
  757.  
  758. Item current = theList.first;
  759. DefaultTableModel model = (DefaultTableModel) dataTable.getModel();
  760. model.setRowCount(0);
  761. while (current != null) {
  762. model.addRow(new Object[]{current.itemNumber, current.name, current.qty, current.price});
  763. current = current.next;
  764. }
  765.  
  766. }
  767. }
  768.  
  769. private void ItemButtonActionPerformed(java.awt.event.ActionEvent evt) {
  770. panel4.setVisible(false);
  771. panel3.setVisible(false);
  772. panel2.setVisible(false);
  773. panel1.setVisible(true);
  774. }
  775.  
  776. private void hmButtonActionPerformed(java.awt.event.ActionEvent evt) {
  777. panel3.hide();
  778. panel2.setVisible(true);
  779. panel4.setVisible(false);
  780. panel1.setVisible(false);
  781.  
  782. }
  783.  
  784. private void nameFieldKeyTyped(java.awt.event.KeyEvent evt) {
  785. char input = evt.getKeyChar();
  786. if (!(input < '0' || input > '9') && input != '\b') {
  787. evt.consume();
  788. JOptionPane.showMessageDialog(this, "Nama tidak dapat mengandung angka!");
  789. }
  790. }
  791.  
  792. private void numberFieldKeyTyped(java.awt.event.KeyEvent evt) {
  793. char input = evt.getKeyChar();
  794. if ((input < '0' || input > '9') && input != '\b') {
  795. evt.consume();
  796. JOptionPane.showMessageDialog(this, "Silakan masukkan angka!");
  797. }
  798. }
  799.  
  800. private void qtyFieldKeyTyped(java.awt.event.KeyEvent evt) {
  801. char input = evt.getKeyChar();
  802. if ((input < '0' || input > '9') && input != '\b') {
  803. evt.consume();
  804. JOptionPane.showMessageDialog(this, "Silakan masukkan angka!");
  805. }
  806. }
  807.  
  808. private void priceFieldKeyTyped(java.awt.event.KeyEvent evt) {
  809. char input = evt.getKeyChar();
  810. if ((input < '0' || input > '9') && (input != '\b' && input != '.')) {
  811. evt.consume();
  812. JOptionPane.showMessageDialog(this, "Silakan masukkan angka!");
  813. }
  814. }
  815.  
  816. private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
  817. if (soldList.isEmpty()) {
  818. JOptionPane.showMessageDialog(this, "Daftar Item kosong!");
  819. } else {
  820. panel1.setVisible(false);
  821. panel2.setVisible(false);
  822. panel3.setVisible(true);
  823. panel4.setVisible(false);
  824.  
  825. Item current = soldList.first;
  826. DefaultTableModel model = (DefaultTableModel) dataTable.getModel();
  827. model.setRowCount(0);
  828. while (current != null) {
  829. model.addRow(new Object[]{current.itemNumber, current.name, current.qty, current.price});
  830. current = current.next;
  831. }
  832.  
  833. }
  834. }
  835.  
  836. private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {
  837. System.exit(0);
  838. }
  839.  
  840. public static void main(String args[]) {
  841. try {
  842. for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
  843. if ("Nimbus".equals(info.getName())) {
  844. javax.swing.UIManager.setLookAndFeel(info.getClassName());
  845. break;
  846. }
  847. }
  848. } catch (ClassNotFoundException ex) {
  849. java.util.logging.Logger.getLogger(ItemUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  850. } catch (InstantiationException ex) {
  851. java.util.logging.Logger.getLogger(ItemUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  852. } catch (IllegalAccessException ex) {
  853. java.util.logging.Logger.getLogger(ItemUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  854. } catch (javax.swing.UnsupportedLookAndFeelException ex) {
  855. java.util.logging.Logger.getLogger(ItemUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  856. }
  857.  
  858. java.awt.EventQueue.invokeLater(new Runnable() {
  859. public void run() {
  860. new ItemUI().setVisible(true);
  861. new ItemUI().panel2.setVisible(false);
  862. new ItemUI().panel3.setVisible(false);
  863. new ItemUI().panel4.setVisible(false);
  864.  
  865. }
  866. });
  867. }
  868.  
  869. private javax.swing.JButton ItemButton;
  870. private javax.swing.JLabel ItemNumberLabel;
  871. public javax.swing.JButton backButton;
  872. private javax.swing.JLabel billLabel1;
  873. public javax.swing.JTable dataTable;
  874. public javax.swing.JButton exitButton;
  875. private javax.swing.JButton hmButton;
  876. private javax.swing.JLabel item1Label1;
  877. private javax.swing.JLabel item2Label1;
  878. private javax.swing.JLabel item3Label1;
  879. private javax.swing.JLabel item4Label1;
  880. private javax.swing.JLabel item5Label1;
  881. private javax.swing.JLabel item6Label1;
  882. private javax.swing.JButton jButton1;
  883. private javax.swing.JButton jButton2;
  884. private javax.swing.JButton jButton4;
  885. private javax.swing.JButton jButton5;
  886. private javax.swing.JLabel jLabel2;
  887. private javax.swing.JScrollPane jScrollPane2;
  888. private javax.swing.JSeparator jSeparator2;
  889. public javax.swing.JTextField nameField;
  890. private javax.swing.JLabel nameLabel;
  891. public javax.swing.JButton newButton;
  892. public javax.swing.JTextField numberField;
  893. private javax.swing.JLabel p1Label1;
  894. private javax.swing.JLabel pLabel1;
  895. private javax.swing.JPanel panel1;
  896. private javax.swing.JPanel panel2;
  897. private javax.swing.JPanel panel3;
  898. private javax.swing.JPanel panel4;
  899. public javax.swing.JTextField priceField;
  900. private javax.swing.JLabel priceLabel;
  901. private javax.swing.JButton purchaseButton1;
  902. private javax.swing.JLabel purchaseLabel1;
  903. private javax.swing.JLabel qt1Label1;
  904. private javax.swing.JLabel qt2Label2;
  905. private javax.swing.JLabel qt2Label3;
  906. private javax.swing.JLabel qt3Label2;
  907. private javax.swing.JLabel qt3Label3;
  908. private javax.swing.JLabel qt4Label2;
  909. private javax.swing.JLabel qt4Label3;
  910. private javax.swing.JLabel qt5Label2;
  911. private javax.swing.JLabel qt5Label3;
  912. private javax.swing.JLabel qt6Label2;
  913. private javax.swing.JLabel qt6Label3;
  914. private javax.swing.JLabel qtLabel1;
  915. public javax.swing.JTextField qtyField;
  916. private javax.swing.JLabel qtyLabel;
  917. public javax.swing.JButton saveButton;
  918. private javax.swing.JLabel shopNameLabel;
  919. private javax.swing.JLabel showBillLabel;
  920. private javax.swing.JButton stockButton;
  921. private javax.swing.JLabel subtotal1Label1;
  922. private javax.swing.JLabel subtotal2Label1;
  923. private javax.swing.JLabel subtotal3Label1;
  924. private javax.swing.JLabel subtotal4Label1;
  925. private javax.swing.JLabel subtotal5Label1;
  926. private javax.swing.JLabel subtotal6Label1;
  927. private javax.swing.JLabel subtotalLabel1;
  928. private javax.swing.JLabel totalBillLabel1;
  929. private javax.swing.JButton totalSaleButton;
  930. }