Kodi PHP:
/*
* KlientiIRCPanel.java
*
* @author xfiles
*
* Kjo klase eshte nderfaqja grafike e programit IRC dhe implementon nderfaqen KlientiIRC
* Vendosa qe te bente 'extend' JPanel per te rritur modularitetin dhe pavaresine e ketij
* programi nga ambienti ne te cilin perdoret. Sikur te ishte nje JFrame do duhej goxha pune
* per ta kthyer ne nje applet dhe sikur te na duheshin te dyja ,applet dhe aplikacioni
* ne fazen e zhvillimit por edhe te modifikimit do duhej qe edhe appletit edhe JFrame
* do ti benim te njejtat ndryshime dhe do rishkruanim kot te njejtin kod.
* Ne kete menyre ky panel mund te perdoret brenda nje applet ose frame pa
* pasur nevoje te ndryshoje madje mund ti shtohet edhe nje aplikacioni tjeter java
* si panel qe eshte.
* Mund te vihet re se kjo klase njeh vetem Administratorin dhe nuk varet nga klasat e tjera.
*/
/*bejme import te gjitha ca na duhen per kete klase*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class KlientiIRCPanel extends JPanel implements KlientiIRC,ActionListener {
//deklarimi i komponenteve grafike
private JPanel dergoPanel1;
private JButton privatButton;
private JTextField nickInitTextField;
private JPanel chatPanel;
private JButton dergoButton;
private JPanel dergoPanel;
private JTextField dhomaInitTextField;
private JButton dhomaNdrroButton;
private JTextField dhomaTextField;
private JScrollPane fushaScrollPane;
private JTextArea fushaTextArea;
private JButton lidhuButton;
private JLabel jLabel1;
private JLabel jLabel2;
private JLabel jLabel3;
private JLabel jLabel4;
private JLabel jLabel5;
private JLabel jLabel6;
private JPanel jPanel1;
private JPanel jPanel2;
private JSplitPane jSplitPane1;
private JButton DircButton;
private JToolBar jToolBar1;
private JToolBar jToolBar2;
private JToolBar jToolBar3;
private JButton konfiguroButton;
private java.awt.List listaList;
private JScrollPane listaScrollPane2;
private JPanel menuPanel;
private JTextField mesazhTextField;
private JButton nickNdrroButton;
private JTextField nickTextField;
private JTextField perdoruesiTextField;
private JTextField portaTextField;
private JTextField serverTextField;
private JButton kthehuButton;
private String biseda=""; //memorizojme te gjithe biseden e dhomes
private Administruesi admin; //deklarojme Administruesin
/*
* Administruesin e inicializon vete kjo klase sepse
* duke qene ky nje aplikacion i bazuar ne grafike
* objekti parent i te gjitheve do te jete kjo klase
* me vecorine qe nuk njeh asnje klase tjeter pervec administruesit
*/
public KlientiIRCPanel(){
setLayout(new CardLayout()); //vendosim CardLayout qe te duket ose hyrja ose chati
ndertoNderfaqen(); //ndertojme grafiken
setPreferredSize(new Dimension(750,460)); //deklarojme dimensionin e preferuar
}
private void ndertoNderfaqen(){ //si te dritarja private
//inicializojme komponentet grafike
jPanel1 = new JPanel();
jPanel2 = new JPanel();
jLabel3 = new JLabel();
serverTextField = new JTextField();
jLabel4 = new JLabel();
dhomaInitTextField = new JTextField();
jLabel5 = new JLabel();
portaTextField = new JTextField();
jLabel6 = new JLabel();
perdoruesiTextField = new JTextField();
lidhuButton = new JButton();
chatPanel = new JPanel();
menuPanel = new JPanel();
jToolBar1 = new JToolBar();
DircButton= new JButton();
jToolBar2 = new JToolBar();
jLabel1 = new JLabel();
dhomaTextField = new JTextField();
dhomaNdrroButton = new JButton();
jToolBar3 = new JToolBar();
jLabel2 = new JLabel();
nickTextField = new JTextField();
nickNdrroButton = new JButton();
konfiguroButton = new JButton();
jSplitPane1 = new JSplitPane();
fushaScrollPane = new JScrollPane();
fushaTextArea = new JTextArea();
listaScrollPane2 = new JScrollPane();
listaList = new java.awt.List();
dergoPanel = new JPanel();
mesazhTextField = new JTextField();
dergoButton = new JButton();
nickInitTextField=new JTextField();
JLabel nickLabel=new JLabel("Pseudonimi: ");
kthehuButton=new JButton("Kthehu");
dergoPanel1=new JPanel();
privatButton=new JButton("Bisede Private");
setBackground(new Color(200,200,255)); //vendosim ngjyren e panelit(e parendesishme)
/*krijojme dhe rregullojme panelin e hyrjes ne fillim panelin jPanel1*/
//krijojme nje FlowLayout
FlowLayout fl=new FlowLayout(FlowLayout.CENTER, 5, 150);
//vendosim vertical gap ne 0
fl.setVgap(0);
//vendosi kete layout tek jPaneli1
jPanel1.setLayout(fl);
jPanel1.setBackground(new Color(205,205,205));
//rregullojme panelin qe do mbaje fushat e vlerave si nick,porta etj etj
jPanel2.setLayout(new GridLayout(6, 2, 0, 5));
jPanel2.setBackground(new Color(205,205,205));
//rregulojme tabelen e pseudonimit
nickLabel.setFont(new Font("Microsoft Sans Serif", 1, 12));
nickLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jPanel2.add(nickLabel);//shtojme tabelen panelit
//rregullojme fushen e tekstit te pseudonimit
nickInitTextField.setBackground(new Color(204,255,204));
nickInitTextField.setForeground(new Color(204,0,51));
jPanel2.add(nickInitTextField);//shtojme fushen panelit
//rregullojme tabelen e serverit
jLabel3.setFont(new Font("Microsoft Sans Serif", 1, 12));
jLabel3.setText("Serveri: ");
jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jPanel2.add(jLabel3);
//rregullojme fushen e serverit
serverTextField.setBackground(new Color(204, 255, 204));
serverTextField.setColumns(15);
serverTextField.setForeground(new Color(204, 0, 51));
jPanel2.add(serverTextField);
//rregullojme tabelen e dhomes
jLabel4.setFont(new Font("Microsoft Sans Serif", 1, 12));
jLabel4.setText("Dhoma: ");
jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jPanel2.add(jLabel4);
//rregullojme fushen e dhomes
dhomaInitTextField.setBackground(new Color(204, 255, 204));
dhomaInitTextField.setColumns(15);
dhomaInitTextField.setForeground(new Color(204, 0, 0));
jPanel2.add(dhomaInitTextField);
//rregullojme tabelen e portes
jLabel5.setFont(new Font("Microsoft Sans Serif", 1, 12));
jLabel5.setText("Porta: ");
jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jPanel2.add(jLabel5);
//rregullojme fushen e portes
portaTextField.setBackground(new Color(204, 255, 204));
portaTextField.setColumns(15);
portaTextField.setForeground(new Color(204, 0, 0));
jPanel2.add(portaTextField);
//rregullojme tabelen e perdoruesit
jLabel6.setFont(new Font("Microsoft Sans Serif", 1, 12));
jLabel6.setText("Perdoruesi: ");
jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jPanel2.add(jLabel6);
//rregullojme fushen e perdoruesit
perdoruesiTextField.setBackground(new Color(204, 255, 204));
perdoruesiTextField.setForeground(new Color(204, 0, 0));
jPanel2.add(perdoruesiTextField);
//rregullojme butonin e lidhjes
lidhuButton.setText("Lidhu");
lidhuButton.addActionListener(this);
//rregullojme butonin e kthimit i cili do na duhet
//per tu kthyer mbrapsht nga konfigurimi
jPanel2.add(lidhuButton);
kthehuButton.addActionListener(this);
//shtojme panelin e fushave tek paneli i hyrjes
jPanel1.add(jPanel2);
//panelin e hyrjes e shtojme tek ky panel me emrin card1 per CardLayout
this.add(jPanel1, "card1");
/*rregullojme panelin e chatit*/
//vendosim BorderLayout
chatPanel.setLayout(new BorderLayout());
//rregullojme panelin e menuse
menuPanel.setLayout(new BoxLayout(menuPanel, BoxLayout.X_AXIS));
menuPanel.setBackground(new Color(102, 255, 255));
//rregullojme jToolbar1 qe do mbaje ikonat ose butonat
//tani per tani ka vetem nje por mund ti shtohen
jToolBar1.setBorder(new BevelBorder(BevelBorder.RAISED));
jToolBar1.setFloatable(false);
jToolBar1.setRollover(true);
DircButton.setText("DIRC");
jToolBar1.add(DircButton); //shtojme butonin per informacionin mbi
//mbi kete aplikacion si dhe autoret etj etj(Divjaka IRC)
menuPanel.add(jToolBar1);//shtojme toolbarin e pare
//rregullojme toolbarin e dyte
jToolBar2.setBorder(new BevelBorder(BevelBorder.RAISED));
jToolBar2.setFloatable(false);
jToolBar2.setRollover(true);
//rregullojme tabelen e ndrrimit te emrit te dhomes
jLabel1.setFont(new Font("Microsoft Sans Serif", 3, 11));
jLabel1.setText("Dhoma:");
jToolBar2.add(jLabel1); //shtojme tabelen
//rregullojme fushen e ndrrimit te emrit te dhomes
dhomaTextField.setBackground(new Color(204, 255, 205));
dhomaTextField.setColumns(10);
dhomaTextField.setForeground(new Color(204, 0, 51));
dhomaTextField.setToolTipText("shkruani emrin e dhomes qe doni te krijoni ose te shkoni.");
jToolBar2.add(dhomaTextField);//shtojme fushen
//rregullojme dhe shtojme butonin e ndrrimit te dhomes
dhomaNdrroButton.setText("Nderro Dhomen");
dhomaNdrroButton.addActionListener(this);
jToolBar2.add(dhomaNdrroButton);
//shtojme toolbarin e dyte tek paneli menuse
menuPanel.add(jToolBar2);
//rregullojme toolbarin e trete
jToolBar3.setBorder(new BevelBorder(BevelBorder.RAISED));
jToolBar3.setFloatable(false);
jToolBar3.setRollover(true);
//rregullojme dhe shtojme tabelen e nderrimit te nickut
jLabel2.setFont(new Font("Microsoft Sans Serif", 3, 11));
jLabel2.setText("Nick:");
jToolBar3.add(jLabel2);
//rregullojme dhe shtojme fushen e nderrimit te nickut
nickTextField.setBackground(new Color(204, 255, 204));
nickTextField.setColumns(10);
nickTextField.setForeground(new Color(204, 0, 51));
nickTextField.setToolTipText("Shkruani Pseudonimin tuaj te ri.");
jToolBar3.add(nickTextField);
//rregullojme dhe shtojme butonin e nderrimit te nickut
nickNdrroButton.setText("Nderro Pseudonim");
nickNdrroButton.addActionListener(this);
jToolBar3.add(nickNdrroButton);
//rregullojme dhe shtojme butonin e konfigurimit
konfiguroButton.setText("Konfiguro");
konfiguroButton.setToolTipText("Kthehu tek fillimi per te nderruar serverin");
konfiguroButton.addActionListener(this);
jToolBar3.add(konfiguroButton);
menuPanel.add(jToolBar3);//shojme toolbarin e trete
//vendosim menuPanel me BorderLayout ne veri
chatPanel.add(menuPanel, BorderLayout.NORTH);
//rregullojme jSplitPane1 ne te cilin do vendosim listen e emrave dhe fushen
//ne kete menyre perdoruesi do mund ta ridimensionoje fushen dhe listen
jSplitPane1.setDividerSize(3);
jSplitPane1.setResizeWeight(0.70);
jSplitPane1.setAutoscrolls(true);
jSplitPane1.setContinuousLayout(true);
jSplitPane1.setLastDividerLocation(-1);
jSplitPane1.setMinimumSize(new Dimension(0, 0));
jSplitPane1.setPreferredSize(new Dimension(0, 0));
jSplitPane1.setRequestFocusEnabled(false);
//rregullojme dhe shtojme fushen e madhe ne te majte
fushaTextArea.setBackground(new Color(204,255,204));
fushaTextArea.setLineWrap(true);
fushaTextArea.setWrapStyleWord(true);
fushaTextArea.setEditable(false);
fushaScrollPane.setViewportView(fushaTextArea);
jSplitPane1.setLeftComponent(fushaScrollPane);
//rregullojme dhe shtojme listen grafike ne te djathte
listaList.setBackground(new Color(204,204,255));
listaList.setMultipleMode(false);
listaScrollPane2.setMinimumSize(new Dimension(150, 0));
listaScrollPane2.setPreferredSize(new Dimension(150, 0));
listaScrollPane2.setViewportView(listaList);
jSplitPane1.setRightComponent(listaScrollPane2);
//shtojme jSlitPane ne qender te chatPanel
chatPanel.add(jSplitPane1, BorderLayout.CENTER);
//vendosim BorderLayout per dergoPanel
dergoPanel.setLayout(new BorderLayout());
//rregullojme dhe shtojme ne qender fushen e dergimit te tekstit
mesazhTextField.setBackground(new Color(204,255,204));
mesazhTextField.setForeground(new Color(204, 0, 0));
mesazhTextField.addActionListener(this);
dergoPanel.add(mesazhTextField, BorderLayout.CENTER);
//rregullojme dhe shtojme ne lindje butonin e dergimit
dergoButton.setText("Dergo");
dergoButton.addActionListener(this);
dergoPanel.add(dergoButton, BorderLayout.EAST);
//veme Border Layout tek dergoPanel1
dergoPanel1.setLayout(new BorderLayout());
//rregullojme dhe shtojme butonin e dritares private ne lindje
privatButton.addActionListener(this);
dergoPanel1.add(privatButton, BorderLayout.EAST);
//shtojme dergoPanel brenda dergoPanel1 ne qender
dergoPanel1.add(dergoPanel, BorderLayout.CENTER);
//shtojme dergoPanel1 ne jug te chatPanel
chatPanel.add(dergoPanel1, BorderLayout.SOUTH);
//shtojme chatPanel si card2 per CardLayout
//keshtu vetem njeri do te jete i vizualizuar
this.add(chatPanel, "card2");
}
/**
*shiko nderfaqen KlientiIRC
*/
public String merrUser(){
String user=this.perdoruesiTextField.getText();
//nese fusha eshte bosh vizualizon nje mesazh gabimi
if(user.equals("")) shkruaj("**Gabim! Ju lutem plotesoni fushen e perdoruesit**");
return user;
}
vazhdon ...
Krijoni Kontakt