Java Nedir
Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış açık kodlu, nesneye yönelik, zeminden bağımsız, yüksek verimli, çok işlevli, yüksek seviye, adım adım işletilen (yorumlanan-interpreted) bir dildir.Java, Sun Microsystems’den James Gosling tarafından geliştirilen bir programlama dilidir (Sun Microsystem’in şu anda Oracle Corporation ile bağlı ortaklığı bulunmaktadır) ve 1995 yılında Sun Microsystems’in çekirdek bileşeni olarak piyasaya sürülmüştür. Bu dil C ve C++’dan birçok sözdizim türetmesine rağmen bu türevler daha basit nesne modeli ve daha az düşük seviye olanaklar içerir.
Java uygulamaları bilgisayar mimarisine bağlı olmadan herhangi bir Java Virtual Machine (JVM)’de çalışabilen tipik bytecode’dur (sınıf dosyası).
Java’nın sık kullanılan sloganlarından biri olan, çevirisi “bir defa yaz, her yerde çalıştır” olan “write once, run anywhere” (WORA),[1]Java’nın derlenmiş Java kodunun Java’yı destekleyen bütün platformlarda tekrar derlenmeye ihtiyacı olmadan çalışabileceğini ima eder .2016 yılında bildirilen 9 milyon geliştiricisi ile, özellikle istemci sunucu web uygulamaları için olmak üzere, kullanımda olan en popüler programlama dillerinden birisidir.
Java ilk çıktığında daha çok küçük cihazlarda kullanılmak için tasarlanmış ortak bir düzlem dili olarak düşünülmüştü. Ancak düzlem bağımsızlığı özelliği ve tekbiçim kütüphane desteği C ve C++’tan çok daha üstün ve güvenli bir yazılım geliştirme ve işletme ortamı sunduğundan, hemen her yerde kullanılmaya başlanmıştır. Şu anda özellikle kurumsal alanda ve mobil cihazlarda son derece popüler olan Java özellikle J2SE 1.4 ve 5 sürümü ile masaüstü uygulamalarda da yaygınlaşmaya başlamıştır. Java’nın ilk sürümü olan Java 1.0 (1995) Java Platform 1 olarak adlandırıldı ve tasarlama amacına uygun olarak küçük boyutlu ve kısıtlı özelliklere sahipti. Daha sonra düzlemin gücü gözlendi ve tasarımında büyük değişiklikler ve eklemeler yapıldı. Bu büyük değişikliklerden dolayı geliştirilen yeni düzleme Java Platform 2 adı verildi ama sürüm numarası 2 yapılmadı, 1.2 olarak devam etti. 2004 sonbaharında çıkan Java 5, geçmiş 1.2, 1.3 ve 1.4 sürümlerinin ardından en çok gelişme ve değişikliği barındıran sürüm oldu. Java SE 8 ise Java teknolojisinin günümüz sürümüdür. 13 Kasım 2006’da Java düzlemi GPL ruhsatıyla açık kodlu hale gelmiştir.
Kodlar
Main:
import java.awt.Color; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; public class anaEkran extends mayinTarlasiOyunu{ protected int kareSayisi=10; protected int mayin=12; JFrame frm=new JFrame("Oyun"); public static void main(String [] args){ anaEkran al=new anaEkran(); al.ilkFrame(); } public void ilkFrame(){ frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frm.getContentPane().add(new mayinYerlestirme(10,12).getContent()); frm.setSize(550,450); frm.setLocation(300,100); frm.setVisible(true); JMenuBar menuBar=new JMenuBar(); menuBar.setSize(550,100); oyunMenubar(menuBar); frm.setJMenuBar(menuBar); frm.repaint(); frm.revalidate(); } public void oyunMenubar(JMenuBar menuBar){ JMenu dosya=new JMenu("Oyun"); menuBar.add(dosya); JMenuItem yeniOyun=new JMenuItem("Yeni oyun"); dosya.add(yeniOyun); JMenuItem baslangic=new JMenuItem("Kolay"); dosya.add(baslangic); JMenuItem orta=new JMenuItem("Orta"); dosya.add(orta); JMenuItem zor=new JMenuItem("Zor"); dosya.add(zor); JMenuItem cikis=new JMenuItem("Çıkış"); dosya.add(cikis); cikis.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); yeniOyun.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frm.setVisible(false); anaEkran al=new anaEkran(); JFrame frm=new JFrame("Oyun"); frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frm.getContentPane().add(new mayinYerlestirme(10,12).getContent()); frm.setSize(550,450); frm.setLocation(300,100); frm.setVisible(true); JMenuBar menuBar=new JMenuBar(); frm.setJMenuBar(menuBar); al.oyunMenubar(menuBar); al.frm=frm; } }); baslangic.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frm.setVisible(false); anaEkran al=new anaEkran(); JFrame frm=new JFrame("Oyun"); frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frm.getContentPane().add(new mayinYerlestirme(10,12).getContent()); frm.setSize(550,450); frm.setLocation(300,100); frm.setVisible(true); JMenuBar menuBar=new JMenuBar(); frm.setJMenuBar(menuBar); al.oyunMenubar(menuBar); al.frm=frm; } }); orta.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frm.setVisible(false); anaEkran al=new anaEkran(); JFrame frm=new JFrame("Oyun"); frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frm.getContentPane().add(new mayinYerlestirme(15,25).getContent()); frm.setSize(800,600); frm.setLocation(300,50); frm.setVisible(true); JMenuBar menuBar=new JMenuBar(); frm.setJMenuBar(menuBar); al.oyunMenubar(menuBar); al.frm=frm; } }); zor.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frm.setVisible(false); anaEkran al=new anaEkran(); JFrame frm=new JFrame("Oyun"); frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frm.getContentPane().add(new mayinYerlestirme(20,60).getContent()); frm.setSize(1070,650); frm.setLocation(200,30); frm.setVisible(true); JMenuBar menuBar=new JMenuBar(); frm.setJMenuBar(menuBar); al.oyunMenubar(menuBar); al.frm=frm; } }); }
Mayın Yerleştirme
import java.awt.Color; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import java.awt.Image; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.Random; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.event.MouseInputListener; public class mayinYerlestirme extends mayinTarlasiOyunu implements ActionListener{ protected int boyut; protected int mayinSayisi; JButton [][] buttons; int[][] mayin; int hak; public void actionPerformed(ActionEvent e) { JButton btn=(JButton)e.getSource(); Point point=getArrayLocation(btn); if(mayin[point.x][point.y]<0){ buttons[point.x][point.y].setText(" "); oyunBitti(); } else if(mayin[point.x][point.y]>0){ if(buttons[point.x][point.y].getActionCommand()=="doldur"){ if(mayin[point.x][point.y]==1){ buttons[point.x][point.y].setText(""+mayin[point.x][point.y]); buttons[point.x][point.y].setOpaque(true); buttons[point.x][point.y].setBackground(Color.YELLOW); } if(mayin[point.x][point.y]==2){ buttons[point.x][point.y].setText(""+mayin[point.x][point.y]);; buttons[point.x][point.y].setOpaque(true); buttons[point.x][point.y].setBackground(Color.GREEN); } if(mayin[point.x][point.y]==3){ buttons[point.x][point.y].setText(""+mayin[point.x][point.y]); buttons[point.x][point.y].setOpaque(true); buttons[point.x][point.y].setBackground(Color.RED); } if(mayin[point.x][point.y]>3) { buttons[point.x][point.y].setText(""+mayin[point.x][point.y]); buttons[point.x][point.y].setOpaque(true); buttons[point.x][point.y].setBackground(Color.CYAN); } hak--; if(hak==0) JOptionPane.showMessageDialog(null,"Kazandın","Sonuc", JOptionPane.INFORMATION_MESSAGE); } } else if(mayin[point.x][point.y]==0){ kareAcma(point.x,point.y); } } @Override public void oyunBitti(){ resimler rs=new resimler(); for(int i=0;i<mayin.length;i++){ for(int j=0;j<mayin.length;j++){ if(mayin[i][j]<0){ buttons[i][j].setText(" "); ImageIcon mayin=rs.mayin(); buttons[i][j].setOpaque(true); buttons[i][j].setBackground(Color.RED); buttons[i][j].setIcon(mayin); } else if(mayin[i][j]==0){ buttons[i][j].setText(" "); buttons[i][j].setOpaque(true); buttons[i][j].setBackground(Color.WHITE); } else{ buttons[i][j].setText(""+mayin[i][j]); if(mayin[i][j]==1){ buttons[i][j].setText(""+mayin[i][j]); buttons[i][j].setOpaque(true); buttons[i][j].setBackground(Color.yellow); } if(mayin[i][j]==2){ buttons[i][j].setText(""+mayin[i][j]); buttons[i][j].setOpaque(true); buttons[i][j].setBackground(Color.GREEN); } if(mayin[i][j]==3){ buttons[i][j].setText(""+mayin[i][j]); buttons[i][j].setOpaque(true); buttons[i][j].setBackground(Color.RED); } if(mayin[i][j]>3){ buttons[i][j].setText(""+mayin[i][j]); buttons[i][j].setOpaque(true); buttons[i][j].setBackground(Color.cyan); } } } } JOptionPane.showMessageDialog(null,"Kaybettiniz","Mayin",JOptionPane.INFORMATION_MESSAGE); } @Override public void kareAcma(int x,int y){ if(x<0 || y<0 || x>buttons.length-1 ||y>buttons.length-1) return; if(buttons[x][y].getText()==" "){ if(mayin[x][y]>0){ if(mayin[x][y]==1){ buttons[x][y].setText(""+mayin[x][y]); buttons[x][y].setOpaque(true); buttons[x][y].setBackground(Color.yellow); } if(mayin[x][y]==2){ buttons[x][y].setText(""+mayin[x][y]); buttons[x][y].setOpaque(true); buttons[x][y].setBackground(Color.GREEN); } if(mayin[x][y]==3){ buttons[x][y].setText(""+mayin[x][y]); buttons[x][y].setOpaque(true); buttons[x][y].setBackground(Color.RED); } if(mayin[x][y]>3){ buttons[x][y].setText(""+mayin[x][y]); buttons[x][y].setOpaque(true); buttons[x][y].setBackground(Color.cyan); } hak--; if(hak==0) JOptionPane.showMessageDialog(null,"Kazandın", "Sonuc", JOptionPane.INFORMATION_MESSAGE); } if(mayin[x][y]==0){ buttons[x][y].setText(" "); buttons[x][y].setOpaque(true); buttons[x][y].setBackground(Color.WHITE); hak--; if(hak==0) JOptionPane.showMessageDialog(null,"Kazandın", "Sonuc", JOptionPane.INFORMATION_MESSAGE); kareAcma(x-1, y-1); kareAcma(x-1, y+1); kareAcma(x+1, y); kareAcma(x+1, y-1); kareAcma(x-1, y); kareAcma(x, y+1); kareAcma(x, y-1); kareAcma(x+1, y+1); } } } public Point getArrayLocation(JButton btn){ Point pt=new Point(-1, -1); for(int j=0;j<buttons.length;j++){ for(int k=0;k<buttons[j].length;k++){ if(buttons[j][k]==btn){ pt.setLocation(j, k); return pt; } } } return pt; } public JPanel getContent(){ JPanel panel = new JPanel(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); gbc.weighty = 1.0; gbc.weightx = 1.0; for(int j = 0; j < buttons.length; j++) { for(int k = 0; k < buttons[j].length; k++) { int n = j*buttons[j].length + k + 1; buttons[j][k] = new JButton(" "); buttons[j][k].addActionListener(this); buttons[j][k].setActionCommand("doldur"); gbc.gridwidth = (k < buttons[j].length-1) ? 1 :GridBagConstraints.REMAINDER; panel.add(buttons[j][k], gbc); } } return panel; } public mayinYerlestirme(int boyut, int mayinSayisi){ this.boyut=boyut; this.mayinSayisi=mayinSayisi; buttons=new JButton[boyut][boyut]; mayin=new int[boyut][boyut]; hak=this.boyut*this.boyut-this.mayinSayisi; Random rnd=new Random(); int x,y; for(int i=0;i<mayin.length;i++){ for(int j=0;j<mayin.length;j++){ mayin[i][j]=0; } } for(int j=0;j<mayinSayisi;j++){ x=rnd.nextInt(boyut); y=rnd.nextInt(boyut); if(mayin[x][y]<0){ j--; continue; } mayin[x][y]=-100; try{mayin[x-1][y]++;}catch(Exception e){} try{mayin[x+1][y]++;}catch(Exception e){} try{mayin[x][y-1]++;}catch(Exception e){} try{mayin[x][y+1]++;}catch(Exception e){} try{mayin[x-1][y-1]++;}catch(Exception e){} try{mayin[x-1][y+1]++;}catch(Exception e){} try{mayin[x+1][y-1]++;}catch(Exception e){} try{mayin[x+1][y+1]++;}catch(Exception e){} } } }
Resim
import java.awt.event.ActionListener; import javax.swing.ImageIcon; public class resimler extends mayinTarlasiOyunu{ public ImageIcon mayin(){ java.net.URL dosyaYolu = getClass().getResource("mayin.jpg"); ImageIcon resim = new ImageIcon(dosyaYolu); return resim; } }
Mayın Oyunu
import javax.swing.JPanel; abstract class mayinTarlasiOyunu { public void oyunBitti(){ } public void kareAcma(int x,int y){ } }