In this project of Java, we are going to learn about the User interface and how we will build a phone call experience in it.
Swing in Java is a Graphical User Interface (GUI) that includes the GUI functions,
It is a part of Java Foundation Classes(JFC), which is also an API for Java programs that provide GUI.
We will learn about the Swing hierarchical flow chart:
1. Container Class:
The container class can be described as an important component that holds the gathering of the components.
2. JButton Class:
The JButton class is used to create a labeled button. The application results in action when the button is clicked.
3. JTextField Class:
It inherits the JTextComponent class and is used to edit the single-line text.
4. JScrollBar Class:
It is used to add a scroll bar, both horizontally and vertically.
5. JPanel Class:
It inherits the JComponent class and provides space for an application that attaches another component.
6. JMenu Class:
It inherits the JMenuItem class and is a pull-down menu component.
7. JList Class:
It inherits JComponent class, the object of JList class represents a list of text items.
8. JLabel Class:
It inherits JComponent class and is used for placing text in a container.
9. JComboBox Class:
It inherits the JComponent class and is used to show a pop-up menu of choices.
10. Layout Manager
To arrange the components inside a container we use the layout manager.
Below is the code of how to make a phone call in Java:
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package javaapplication5; /** * * @author VD */ import java.awt.Color; public class Phone_call extends javax.swing.JFrame { /** * Creates new form Phone */ public Phone_call() { initComponents(); } @SuppressWarnings("unchecked") private void initComponents() { jColorChooser1 = new javax.swing.JColorChooser(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); jButton4 = new javax.swing.JButton(); jButton5 = new javax.swing.JButton(); jButton6 = new javax.swing.JButton(); jButton7 = new javax.swing.JButton(); jButton8 = new javax.swing.JButton(); jButton9 = new javax.swing.JButton(); area = new javax.swing.JTextField(); jButton10 = new javax.swing.JButton(); jButton11 = new javax.swing.JButton(); jButton12 = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setBackground(new java.awt.Color(204, 204, 204)); jButton1.setBackground(new java.awt.Color(51, 51, 51)); jButton1.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N jButton1.setForeground(new java.awt.Color(255, 255, 255)); jButton1.setText("1"); jButton1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jButton2.setBackground(new java.awt.Color(51, 51, 51)); jButton2.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N jButton2.setForeground(new java.awt.Color(255, 255, 255)); jButton2.setText("2"); jButton2.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jButton3.setBackground(new java.awt.Color(51, 51, 51)); jButton3.setFont(new java.awt.Font("Tahoma", 0, 14)); jButton3.setForeground(new java.awt.Color(255, 255, 255)); jButton3.setText("3"); jButton3.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); jButton4.setBackground(new java.awt.Color(51, 51, 51)); jButton4.setFont(new java.awt.Font("Tahoma", 0, 14)); jButton4.setForeground(new java.awt.Color(255, 255, 255)); jButton4.setText("4"); jButton4.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); jButton4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton4ActionPerformed(evt); } }); jButton5.setBackground(new java.awt.Color(51, 51, 51)); jButton5.setFont(new java.awt.Font("Tahoma", 0, 14)); jButton5.setForeground(new java.awt.Color(255, 255, 255)); jButton5.setText("5"); jButton5.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); jButton5.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton5ActionPerformed(evt); } }); jButton6.setBackground(new java.awt.Color(51, 51, 51)); jButton6.setFont(new java.awt.Font("Tahoma", 0, 14)); jButton6.setForeground(new java.awt.Color(255, 255, 255)); jButton6.setText("6"); jButton6.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); jButton6.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton6ActionPerformed(evt); } }); jButton7.setBackground(new java.awt.Color(51, 51, 51)); jButton7.setFont(new java.awt.Font("Tahoma", 0, 14)); jButton7.setForeground(new java.awt.Color(255, 255, 255)); jButton7.setText("7"); jButton7.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); jButton7.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton7ActionPerformed(evt); } }); jButton8.setBackground(new java.awt.Color(51, 51, 51)); jButton8.setFont(new java.awt.Font("Tahoma", 0, 14)); jButton8.setForeground(new java.awt.Color(255, 255, 255)); jButton8.setText("8"); jButton8.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); jButton8.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton8ActionPerformed(evt); } }); jButton9.setBackground(new java.awt.Color(51, 51, 51)); jButton9.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N jButton9.setForeground(new java.awt.Color(255, 255, 255)); jButton9.setText("9"); jButton9.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); jButton9.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton9ActionPerformed(evt); } }); area.setFont(new java.awt.Font("Bahnschrift", 0, 24)); // NOI18N jButton10.setBackground(new java.awt.Color(255, 51, 0)); jButton10.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N jButton10.setForeground(new java.awt.Color(255, 255, 255)); jButton10.setText("clear"); jButton10.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); jButton10.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton10ActionPerformed(evt); } }); jButton11.setBackground(new java.awt.Color(51, 51, 51)); jButton11.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N jButton11.setForeground(new java.awt.Color(255, 255, 255)); jButton11.setText("0"); jButton11.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); jButton11.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton11ActionPerformed(evt); } }); jButton12.setBackground(new java.awt.Color(102, 204, 0)); jButton12.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N jButton12.setForeground(new java.awt.Color(255, 255, 255)); jButton12.setText("call"); jButton12.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); jButton12.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton12ActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(area, javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton7, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton10, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 42, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jButton11, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton5, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton8, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(38, 38, 38) .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton6, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jButton12, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton9, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)))))))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(44, 44, 44) .addComponent(area, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(51, 51, 51) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(28, 28, 28) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton5, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton6, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(28, 28, 28) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton7, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton8, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton9, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(26, 26, 26) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton10, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton11, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton12, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(31, Short.MAX_VALUE)) ); pack(); }// boolean is_rejected = false; boolean is_calling = false; private void jButton1ActionPerformed(java.awt.event.ActionEvent event) { if(is_calling==true) return; if(is_rejected==true) { is_rejected=false; area.setText(""); } area.setText(area.getText()+ "1"); } private void jButton2ActionPerformed(java.awt.event.ActionEvent event) { if(is_calling==true) return; if(is_rejected==true) { is_rejected=false; area.setText(""); } area.setText(area.getText()+ "2"); } private void jButton3ActionPerformed(java.awt.event.ActionEvent event) { if(is_calling==true) return; if(is_rejected==true) { is_rejected=false; area.setText(""); } area.setText(area.getText()+ "3"); } private void jButton4ActionPerformed(java.awt.event.ActionEvent event) { if(is_calling==true) return; if(is_rejected==true) { is_rejected=false; area.setText(""); } area.setText(area.getText()+ "4"); } private void jButton5ActionPerformed(java.awt.event.ActionEvent event) { if(is_calling==true) return; if(is_rejected==true) { is_rejected=false; area.setText(""); } area.setText(area.getText()+ "5"); } private void jButton6ActionPerformed(java.awt.event.ActionEvent event) { if(is_calling==true) return; if(is_rejected==true) { is_rejected=false; area.setText(""); } area.setText(area.getText()+ "6"); } private void jButton7ActionPerformed(java.awt.event.ActionEvent event) { if(is_calling==true) return; if(is_rejected==true) { is_rejected=false; area.setText(""); } area.setText(area.getText()+ "7"); } private void jButton8ActionPerformed(java.awt.event.ActionEvent event) { if(is_calling==true) return; if(is_rejected==true) { is_rejected=false; area.setText(""); } area.setText(area.getText()+ "8"); } private void jButton9ActionPerformed(java.awt.event.ActionEvent event) { if(is_calling==true) return; if(is_rejected==true) { is_rejected=false; area.setText(""); } area.setText(area.getText()+ "9"); } private void jButton11ActionPerformed(java.awt.event.ActionEvent event) { if(is_calling==true) return; if(is_rejected==true) { is_rejected=false; area.setText(""); } area.setText(area.getText()+ "0"); } private void jButton10ActionPerformed(java.awt.event.ActionEvent event) { area.setText(""); } int call=0; private void jButton12ActionPerformed(java.awt.event.ActionEvent event) { if(call==0) call=1; else call=0; if(call==1) { jButton12.setText("Hang Up?"); if(is_rejected==false)area.setText("calling the number.. " + area.getText()); jButton12.setBackground(new Color(255, 1, 0)); is_calling = true; is_rejected = false; } else { jButton12.setText("Call"); area.setText("call rejected.. "); jButton12.setBackground(new Color(104, 204, 0)); is_rejected=true; is_calling = false; } } /** * @param args The command-line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ // /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(Phone_app.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(Phone_app.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(Phone_app.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(Phone_app.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } // /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Phone_call().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JTextField area; private javax.swing.JButton jButton1; private javax.swing.JButton jButton10; private javax.swing.JButton jButton11; private javax.swing.JButton jButton12; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JButton jButton4; private javax.swing.JButton jButton5; private javax.swing.JButton jButton6; private javax.swing.JButton jButton7; private javax.swing.JButton jButton8; private javax.swing.JButton jButton9; private javax.swing.JColorChooser jColorChooser1; // End of variable declaration }
The output of the program is as follows:
Submitted by Vedanti Ravish Deshmukh (vedantid30)
Download packets of source code on Coders Packet
Comments