soru 1 )Frame yapilacak. Ad, soyad ve telefon no kutucuklari olacak, kaydet dugmesine basildiginda
bu bilgileri text dosyaya yazdirilacak.
soru 2 ) menu den acilan dosyanin boyutunu(gb) ve tarihini(dd.mm.yyyy) alip ekrana yazdiriniz.(file seceneginden bir dosya secilecek , bu dosyanin bilgileri yazdirilacak.)
cevap veren herkese simdiden tesekkürler ! Ankara'da olanlara isterlerse yemek yada bira ısmarlayabilirim :)
// -1- çok unutmuşum, anca ilkini yazabildim şimdilik, kusura bakma..
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
public class eksi extends JFrame implements ActionListener{
JButton saveButton = new JButton ("Save");
JTextField nameField = new JTextField("", 10);
JTextField surnameField = new JTextField("", 10);
JTextField telNumField = new JTextField("", 10);
public eksi(){
this.setLayout(new BorderLayout());
this.setPreferredSize(new Dimension(250, 200));
this.pack();
this.setVisible(true);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel nameLabel, surnameLabel, telNumLabel;
JPanel namePanel, surnamePanel, telNumPanel, savePanel, all;
all = new JPanel();
namePanel = new JPanel();
nameLabel = new JLabel ("Name:");
namePanel.add (nameLabel);
namePanel.add (nameField);
surnamePanel = new JPanel();
surnameLabel = new JLabel ("Surname:");
surnamePanel.add (surnameLabel);
surnamePanel.add (surnameField);
telNumPanel = new JPanel();
telNumLabel = new JLabel ("Tel. Number:");
telNumPanel.add (telNumLabel);
telNumPanel.add (telNumField);
saveButton.addActionListener(this);
savePanel = new JPanel();
savePanel.add (saveButton);
all.add (namePanel);
all.add (surnamePanel);
all.add (telNumPanel);
all.add (savePanel);
this.add (all);
}
public static void main(String[] args) {
eksi eksiDuyuru = new eksi();
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == saveButton)
/*
textField'ların boş olmama şartlarını da kontrol edebilirsin burada..
ya da telefon numarası alanına sadece rakam yazılmasını filan..
aksi durumda hata mesajı verirsin general output'ta.
*/
{
try {
FileWriter file = new FileWriter("c:/users/test.txt");
// desktop'a değil, users'a attım.. sonra "nerede lan bu?" diye arama.
BufferedWriter bw = new BufferedWriter(file);
bw.write("Name: " + nameField.getText());
bw.newLine();
bw.write("Surname: " + surnameField.getText());
bw.newLine();
bw.write("Tel. Number: " + telNumField.getText());
bw.newLine();
bw.close();
}
catch (Exception ex){
System.err.println("Error: " + ex.getMessage());
}
}
}
}
/* -2-
fileChooser kullanmadığımdan şimdiye kadar pek.. bunun o kısımlarını direkt kopyaladım bir yerden. istediğini yapıyor yapmasına ama ödevi ciddi bir kontrolden geçirmeye kalkarlarsa yakalanırsın.
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
public class eksi extends JFrame {
JTextField fileSize = new JTextField(8);
JTextField fileDate = new JTextField(25);
JFileChooser fileChooser = new JFileChooser();
eksi() {
fileSize.setEditable(false);
fileDate.setEditable(false);
JPanel content = new JPanel();
content.setLayout(new FlowLayout());
content.add(new JLabel("File Size:"));
content.add(fileSize);
content.add(new JLabel("Date:"));
content.add(fileDate);
JMenuBar menubar = new JMenuBar();
JButton file = new JButton("Open...");
file.addActionListener(new OpenAction());
menubar.add(file);
this.setJMenuBar(menubar);
this.setContentPane(content);
this.setTitle("Question 2");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.pack();
this.setLocationRelativeTo(null);
}
class OpenAction implements ActionListener {
public void actionPerformed(ActionEvent ae) {
int retval = fileChooser.showOpenDialog(eksi.this);
if (retval == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
fileSize.setText("" + file.length() / 1024 + " KB");
Long lastModified = file.lastModified();
Date date = new Date(lastModified);
fileDate.setText("" + date);
}
}
}
public static void main(String[] args) {
JFrame window = new eksi();
window.setVisible(true);
}
}