0% found this document useful (0 votes)
89 views

Opp Lab 11

The document describes three Java GUI programming activities: 1. Creating a JTable to display student data and adding mouse click functionality to show selected row and column. 2. Drawing shapes and text on a custom JPanel subclass using paintComponent and adding the panel to a JFrame. 3. Creating a circle drawing program with buttons to enlarge and shrink the circle size, handled by a listener class.

Uploaded by

Masood
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
89 views

Opp Lab 11

The document describes three Java GUI programming activities: 1. Creating a JTable to display student data and adding mouse click functionality to show selected row and column. 2. Drawing shapes and text on a custom JPanel subclass using paintComponent and adding the panel to a JFrame. 3. Creating a circle drawing program with buttons to enlarge and shrink the circle size, handled by a listener class.

Uploaded by

Masood
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

Name: Ahmed Abdullah

Class: BSCS8-A
Lab: 11
Activity # 1
import java.awt.*;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import javax.swing.*;

public class Activity1 extends JFrame

Activity1()

JTable table;

String tableHeader[]= {"Col 1","Col 2","Col 3"};

String tableData[][]= new String[5][3];{

for(int i=0; i<5; i++ )

for(int j=0; j< 3; j++)

tableData[i][j]=i+","+j;

table = new JTable(tableData, tableHeader);

table.addMouseListener( new MouseAdapter()

public void mouseClicked(MouseEvent e)

int row= table.getSelectedRow();


int col= table.getSelectedColumn();

JOptionPane.showMessageDialog(null, "Selected Row = "+row+"\nSelected


Col:"+col);

});

JScrollPane scrollPane = new JScrollPane(table);

this.add(scrollPane, BorderLayout.CENTER);

Test
import javax.swing.JFrame;

public class Test extends JFrame{


public static void main(String [] args)
{
Activity1 s=new Activity1();
s.setVisible(true);
}
}

Output

Activity # 2
TestPaintComponent
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.*;

public class TestPaintComponent extends JFrame


{
public TestPaintComponent()
{
add(new NewPanel());
this.setBounds(100,100,250,250);
this.setVisible(true);
}
public static void main(String[] args)
{
TestPaintComponent frame = new TestPaintComponent();
frame.setTitle("Test Paint Component");
}
class NewPanel extends JPanel
{
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.RED);
g.drawLine(0, 0, 50, 50);
g.drawString("Ahmed Abdullah", 50, 50);
}
}
}

Test
import javax.swing.JFrame;

public class Test extends JFrame{


public static void main(String [] args)
{
TestPaintComponent m=new TestPaintComponent();
m.setVisible(true);
}
}
Output
Activity # 3
ControlCircle
import java.awt.*;
import javax.swing.*;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ControlCircle extends JFrame
{
private JButton jbtEnlarge = new JButton("Enlarge");
private JButton jbtShrink = new JButton("Shrink");
private CirclePanel canvas = new CirclePanel();
public ControlCircle()
{
JPanel panel = new JPanel(); // Use the panel to group buttons
panel.add(jbtEnlarge);
panel.add(jbtShrink);
this.add(canvas, BorderLayout.CENTER); // Add canvas to center
this.add(panel, BorderLayout.SOUTH); // Add buttons to the frame
jbtEnlarge.addActionListener(new Listener());
jbtShrink.addActionListener(new Listener());
}
/** Main method */
public static void main(String[] args)
{
JFrame frame = new ControlCircle();
frame.setTitle("ControlCircle2");
frame.setLocationRelativeTo(null); // Center the frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200); frame.setVisible(true);
}
class Listener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(new java.util.Date(e.getWhen()));
if (e.getSource() == jbtEnlarge)
canvas.enlarge();
else if (e.getSource() == jbtShrink)
canvas.shrink();

}
}
}

CirclePanel
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
class CirclePanel extends JPanel
{
private int radius = 5; // Default circle radius
/** Enlarge the circle */
public void enlarge()
{
radius++;
repaint();
}
/** shrink the circle */
public void shrink()
{
radius--;
repaint();
}
/** Repaint the circle */
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.green);
g.drawOval(getWidth() / 2 - radius, getHeight() / 2 - radius, 2 *
radius, 2 * radius);
g.fillOval(getWidth() / 2 - radius, getHeight() / 2 - radius, 2 *
radius, 2 * radius);
}

Test
import javax.swing.JFrame;

public class Test extends JFrame{


public static void main(String [] args)
{
ControlCircle m=new ControlCircle();
m.setVisible(true);
}
}
Output
Task # 1
StudentData
import java.awt.BorderLayout;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class StudentData extends JFrame{
public StudentData() {
JTable table;
String tableHeader[] = {"Name","Age","CNIC","Father's
Name","Address","Contact NO.","Email"};
String tableData[][] = new String[2][7];
tableData[0][0]="Ahmed Abdullah";
tableData[0][1]="17";
tableData[0][2]="36601-xxxxxxx-9";
tableData[0][3]="Tariq";
tableData[0][4]="NUST H-12";
tableData[0][5]="0303xxxxxxx";
tableData[0][6]="aabdullah.bscs18seecs";
tableData[1][0]="Muhammad Ali";
tableData[1][1]="19";
tableData[1][2]="33100-xxxxxxx-5";
tableData[1][3]="Adam";
tableData[1][4]="NUST H-12";
tableData[1][5]="0310xxxxxxx";
tableData[1][6]="mbilal.bscs17seecs";
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 7; j++) {
System.out.print(tableData[i][j]);
}
}
table = new JTable(tableData, tableHeader);
JScrollPane scrollPane = new JScrollPane(table);
this.add(scrollPane, BorderLayout.CENTER);
setVisible(true);
setBounds(200, 200, 300, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}

Test
import javax.swing.JFrame;

public class Test extends JFrame{


public static void main(String [] args)
{
StudentData m=new StudentData();
m.setVisible(true);
}
}
Output

Task # 2
StudentData
import java.awt.BorderLayout;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class StudentData extends JFrame{
JButton b=new JButton("Show");
public StudentData() {
JTable table;
String tableHeader[] = {"Name","Age","CNIC","Father's
Name","Address","Contact NO.","Email"};
String tableData[][] = new String[2][7];
tableData[0][0]="Ahmed Abdullah";
tableData[0][1]="17";
tableData[0][2]="36601-xxxxxxx-9";
tableData[0][3]="Abu g";
tableData[0][4]="NUST H-12";
tableData[0][5]="0303xxxxxxx";
tableData[0][6]="mtariq.bscs18seecs";
tableData[1][0]="Muhammad Bilal";
tableData[1][1]="19";
tableData[1][2]="33100-xxxxxxx-5";
tableData[1][3]="Adam";
tableData[1][4]="NUST H-12";
tableData[1][5]="0310xxxxxxx";
tableData[1][6]="mbilal.bscs17seecs";
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 7; j++) {
System.out.print(tableData[i][j]);
}
}
table = new JTable(tableData, tableHeader);
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.add(b);
this.add(scrollPane, BorderLayout.CENTER);
this.add(b, BorderLayout.SOUTH);
table.setVisible(false);
b.setVisible(true);
b.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e)
{
table.setVisible(true);
}
});
setBounds(200, 200, 300, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}

Test
import javax.swing.JFrame;

public class Test extends JFrame{


public static void main(String [] args)
{
StudentData s=new StudentData();
s.setVisible(true);
}
}
Output
Task # 3
ControlRectangle
import java.awt.*;
import javax.swing.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Calendar;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class ControlRectangle extends JFrame


{
private JButton jbtEnlarge = new JButton("Enlarge");
private JButton jbtShrink = new JButton("Shrink");
private JLabel l1=new JLabel("Initial Width = 5, Initial Length = 10");
private JTextField j1=new JTextField(30);
private CirclePanel canvas = new CirclePanel();
public ControlRectangle()
{
JPanel panel = new JPanel(); // Use the panel to group buttons
panel.add(l1);
panel.add(j1);
panel.add(jbtEnlarge);
panel.add(jbtShrink);
this.add(j1, BorderLayout.NORTH);
this.add(l1, BorderLayout.WEST);
this.add(canvas, BorderLayout.CENTER); // Add canvas to center
this.add(panel, BorderLayout.SOUTH); // Add buttons to the frame
jbtEnlarge.addActionListener(new Listener());
jbtShrink.addActionListener(new Listener());
}
/** Main method */
public static void main(String[] args)
{
JFrame frame = new ControlRectangle();
frame.setTitle("ControlRectangle2");
frame.setLocationRelativeTo(null); // Center the frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200); frame.setVisible(true);
}
class Listener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e) {
Date today = Calendar.getInstance().getTime();
String pattern = "MM/dd/yyyy HH:mm:ss";
DateFormat df = new SimpleDateFormat(pattern);
String todayAsString = df.format(today);
j1.setText(todayAsString);
if (e.getSource() == jbtEnlarge)
canvas.enlarge();
else if (e.getSource() == jbtShrink)
canvas.shrink();

}
}
}

RectanglePanel
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;

class RectanglePanel extends JPanel {


private int width = 20; // Default rectangle Width
private int Length = 40; // Default rectangle Length

/** Enlarge the circle */


public void enlarge() {
width++;
Length++;
repaint();
}

/** shrink the circle */


public void shrink() {
width--;
Length--;
repaint();
}

/** Repaint the circle */


protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.green);
g.fillRect(width, Length, 2*width,2* Length);
}

Output

You might also like