Turinys |
AWT ir Swing |
Swing langas |
Komponentes su paveiksleliais |
Kas yra JAR? Verta sužinoti! |
Meniu kūryba |
Suraskite paklydėlį |
import.javax.swing.*;Šis paketas suteikia mums žymiai daugiau nei AWT galimybių kurti gražiai atrodančias programas. Visos AWT komponentės turi analogus ir pakete Swing. Sudėkime AWT ir atitinkamas Swing paketo komponentes šalia, kad galėtume jas palyginti.
import java.awt.*; import javax.swing.*; import java.awt.event.*; class ManoLangas extends JFrame { public ManoLangas() { setSize(400,300); setTitle("Mano programos langas"); show();// addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose(); System.exit(0); } }); } public static void main(String args[]) { new ManoLangas(); } }Tuščią Swing langą galima sukurti dar paprasčiau.
import javax.swing.*; class TusciasSwingLangas extends JFrame { public TusciasSwingLangas() { super("Tuščias Swingo Langas"); setSize(300,300); show(); } public static void main(String args[]) { new TusciasSwingLangas();} } |
Button mygt = new Button("Mygtukas");//AWT mygtukas JButton mygt = new JButton("Mygtukas");//Swing mygtukasTačiau ne visada to užtenka!
ImageIcon icon = new ImageIcon("pav.gif"); JButton mygt = new JButton(icon);Sukursime programėlę, kuri naudoja mygtukus su paveikslėliais. Be to - paspaudus mygtuką, programos lange patalpinamas užrašas (JLabel objektas), tačiau ne tekstas, bet paveikslėlis!
import java.awt.*; import javax.swing.*; import java.awt.event.*; public class MygtIvykSwF extends JFrame implements ActionListener{ JButton [] mygt= new JButton [4]; JLabel l; ImageIcon [] pv = new ImageIcon[4]; ImageIcon [] pvd = new ImageIcon[4]; MygtIvykSwF (){ Container cnt = getContentPane(); setSize(550,400); cnt.setLayout(new BorderLayout()); setTitle("Mano programos langas"); JPanel pan = new JPanel(); pan.setLayout(new GridLayout(4,1)); //Dviejuose String tipo duomenų masyvuose saugome paveikslėlių failų vardus String [] fail ={"citr.gif", "vyn.gif","pom.gif", "gel.gif"}; String [] faild ={"citrd.gif", "vynd.gif","pomd.gif", "geld.gif"}; for (int i=0; i <4; i++){ //Sukuriame du paveikslėlių masyvus pv[i] = new ImageIcon(fail[i]); pvd[i] = new ImageIcon(faild[i]); mygt[i]=new JButton(pv[i]); mygt[i].addActionListener(this); pan.add(mygt[i]); } cnt.add("West",pan); l= new JLabel(); cnt.add("Center",l); show();// addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose(); System.exit(0); } }); } public static void main (String arg []) {new MygtIvykSwF();} //Kai mygtukas paspaudžiamas, jo spalva pasikeičia, o vietoje // antraštės atsiranda paveikslas public void actionPerformed(ActionEvent ivyk) { if (ivyk.getSource()==mygt[0]) { mygt[0].setBackground(Color.pink); mygt[1].setBackground(Color.white); mygt[2].setBackground(Color.white); mygt[3].setBackground(Color.white); l.setIcon(pvd[0]);} if (ivyk.getSource()==mygt[1]){ mygt[1].setBackground(Color.pink); mygt[0].setBackground(Color.white); mygt[2].setBackground(Color.white); mygt[3].setBackground(Color.white); l.setIcon(pvd[1]); } if (ivyk.getSource()==mygt[2]) {mygt[2].setBackground(Color.pink); mygt[0].setBackground(Color.white); mygt[1].setBackground(Color.white); mygt[3].setBackground(Color.white); l.setIcon(pvd[2]);} if (ivyk.getSource()==mygt[3]) {mygt[3].setBackground(Color.pink); mygt[1].setBackground(Color.white); mygt[2].setBackground(Color.white); mygt[0].setBackground(Color.white); l.setIcon(pvd[3]); } }}O štai taip atrodo programos langas:
Veiksmas | Komanda |
Sukurti jar failą | jar cf jar-failas failų vardai |
Peržiūrėti jar failo turinį | jar tf jar-failas |
Išskleisti visus suarchyvuotus failus | jar xf jar-failas |
Išskleisti pasirinktus failus | jar xf jar-failas pasirinkti-failai |
Vykdyti suarchyvuotą programą | java -jar programa.jar |
Vykdyti įskiepį, kurio klasė ir kiti failai suarchyvuoti | <applet code=AppletoKlasėsVardas.class archive="JarFailoVardas.jar" width=plotis height=aukštis> </applet> |
jar cf vardas.jar *Į archyvą bus patalpinti visi tame kataloge esantys failai.
java -jar mygtukai.jarVykdyti suarchyvuotą programą paprasta. Tačiau jeigu norite patys išmokti archyvuoti ir vykdyti programas - perskaitykite skyrelį iki galo. Kitaip jums tikrai nepavyks!
java -jar programos-vardas.jaršiame ,,manifeste" turi būti nurodyta kuri iš suarchyvuotų klasių yra pagrindinė, t.y. nuo kurios klasės turi prasidėti programos vykdymas. Jeigu patys tuo nepasirūpinsime, reikalingos nuorodos nebus ir programos įvykdyti nepavyks. Teisingai parengti ,,manifestą" galime taip:
Main-Class: pagrindinės-klasės-vardas
jar cmf manif progr.jar failų-vardai
JMenuBar menu_juosta = new JMenuBar(); setJMenuBar(menu_juosta);
JMenu pirmas = new JMenu("Pirmas "); menu_juosta.add(pirmas); JMenu antras = new JMenu("Antras "); menu_juosta.add(antras); ....
JMenuItem a = new MenuItem("a"); a.addActionListener(this); pirmas.add(a); JMenuItem b = new MenuItem("a"); b.addActionListener(this); pirmas.add(b); ....
import javax.swing.*; import java.awt.event.*; class MenuSwing extends JFrame implements ActionListener{ JMenuItem a1,b1,c1, a2,b2,c2; JTextField txt; JLabel antr; public MenuSwing() { super("Programos langas su menu"); JMenuBar menu = new JMenuBar(); setSize(200,250); setJMenuBar(menu); JMenu pirmas = new JMenu("1 patiekalas"); menu.add(pirmas); a1=new JMenuItem("Mišrainė"); a1.addActionListener(this); pirmas.add(a1); b1=new JMenuItem("Salotos"); b1.addActionListener(this); pirmas.add(b1); c1=new JMenuItem("Kumpis"); c1.addActionListener(this); pirmas.add(c1); JMenu antras = new JMenu("2 patiekalas"); menu.add(antras); a2=new JMenuItem("Kepsnys"); a2.addActionListener(this); antras.add(a2); b2=new JMenuItem("Žuvis"); b2.addActionListener(this); antras.add(b2); c2=new JMenuItem("Spageti"); c2.addActionListener(this); antras.add(c2); antr = new JLabel("Swing langas su menu"); getContentPane().add("Center",antr); txt = new JTextField(); getContentPane().add("South",txt); show(); } public void actionPerformed (ActionEvent ivykis) { if (ivykis.getSource()==a2) { txt.setText("Pasirinkote kepsnį");} else {txt.setText("Pasirinkote ne kepsnį"); } } public static void main(String args[]) { new MenuSwing();}} |
import java.awt.*; import java.awt.event.*; class MenuAWT extends Frame implements ActionListener{ MenuItem a1,b1,c1, a2,b2,c2; TextField txt; Label antr; public MenuAWT() { super("Programos langas su menu"); MenuBar menu = new MenuBar(); setSize(200,250); setMenuBar(menu); Menu pirmas = new Menu("1 patiekalas"); menu.add(pirmas); a1=new MenuItem("Mišrainė"); a1.addActionListener(this); pirmas.add(a1); b1=new MenuItem("Salotos"); b1.addActionListener(this); pirmas.add(b1); c1=new MenuItem("Kumpis"); c1.addActionListener(this); pirmas.add(c1); Menu antras = new Menu("2 patiekalas"); menu.add(antras); a2=new MenuItem("Kepsnys"); a2.addActionListener(this); antras.add(a2); b2=new MenuItem("Žuvis"); b2.addActionListener(this); antras.add(b2); c2=new MenuItem("Spageti"); c2.addActionListener(this); antras.add(c2); antr = new Label("AWT langas su menu"); setLayout(new BorderLayout()); add("Center",antr); txt = new TextField(); add("South",txt); show(); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose(); System.exit(0); } });} public void actionPerformed (ActionEvent ivykis) { if (ivykis.getSource()==a2) { txt.setText("Pasirinkote kepsnį");} else {txt.setText("Pasirinkote ne kepsnį"); } } public static void main(String args[]) { new MenuAWT();}} |
.... JToolBar irankiai = new JToolBar(); ir1 = new JButton ("1 įrankis"); ir1.setToolTipText("Pirmas įrankis"); ir1.addActionListener(this); irankiai.add(ir1); ir2 = new JButton ("2 įrankis"); ir2.setToolTipText("Antras įrankis"); ir2.addActionListener(this); irankiai.add(ir2); getContentPane().add("North",irankiai); ... |
java -jar slepynes.java