import javax.swing.JOptionPane;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.io.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.util.ArrayList;
public class DateiChecker extends javax.swing.JFrame {
public static File file1;
public static File file2;
public static ArrayList<String> text1;
public static ArrayList<String> text2;
public void holDatei(int dateinr) {
JFileChooser txtChooser = new JFileChooser();
FileFilter filter = new FileNameExtensionFilter("txt", "TXT");
txtChooser.setFileFilter(filter);
txtChooser.addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals(JFileChooser.APPROVE_SELECTION)) {
if (dateinr == 1) {
file1 = txtChooser.getSelectedFile();
} else {
file2 = txtChooser.getSelectedFile();
}
}
}
});
txtChooser.showOpenDialog(null);
}
public void ladText(int dateinr) throws IOException {
if (dateinr == 1) {
text1 = new ArrayList<String>();
FileInputStream instyleLeserin = new FileInputStream(file1);
BufferedReader bildZeitungLeserin = new BufferedReader(new InputStreamReader(instyleLeserin));
String zeile;
jTextArea1.setEditable(true);
jTextArea1.setText("");
while ((zeile = bildZeitungLeserin.readLine()) != null) {
text1.add(zeile);
jTextArea1.append(zeile);
jTextArea1.append("\n");
}
jTextArea1.setEditable(false);
} else {
text2 = new ArrayList<String>();
FileInputStream instyleLeserin = new FileInputStream(file2);
BufferedReader bildZeitungLeserin = new BufferedReader(new InputStreamReader(instyleLeserin));
String zeile;
jTextArea2.setEditable(true);
jTextArea2.setText("");
while ((zeile = bildZeitungLeserin.readLine()) != null) {
text2.add(zeile);
jTextArea2.append(zeile);
jTextArea2.append("\n");
}
jTextArea2.setEditable(false);
}
}
public void vergleichJetzt() {
jTextArea3.setEditable(true);
jTextArea3.setText("");
boolean checkenObEnter = true;
if(text1.equals(text2)) {
jTextArea3.append("die dateien sind komplett gleich und identisch");
checkenObEnter = false;
} else if (text1.size() >= text2.size()){
for (int i=0; i<text1.size(); i++) {
String checkDas = text1.get(i);
for (int j=0; j<text2.size(); j++) {
if (checkDas.equals(text2.get(j))) {
jTextArea3.append("links zeile nr. " + (i + 1) + " = rechts zeile nr. " + (j + 1) + "\n");
}
}
}
} else if (text1.size() < text2.size()){
for (int i=0; i<text2.size(); i++) {
String checkDas = text2.get(i);
for (int j=0; j<text1.size(); j++) {
if (checkDas.equals(text1.get(j))) {
jTextArea3.append("links zeile nr. " + (j + 1) + " = rechts zeile nr. " + (i + 1) + "\n");
}
}
}
}
if (checkenObEnter == true && text1.size() < text2.size()) {
int start = 0;
for (int i=0; i<text1.size(); i++) { // sucht erste zeile mit unterschied um damit zu arbeiten dann
if (!text1.get(i).equals(text2.get(i))) {
start = (i);
break;
}
}
int counterChecktObRestLicheZeilenGleichSinn = 0;
for (int i=start; i < text1.size(); i++) {
if (text1.get(i).equals(text2.get(i + 1))) {
counterChecktObRestLicheZeilenGleichSinn++;
}
if(counterChecktObRestLicheZeilenGleichSinn >= (text2.size()-(start+1))) {
jTextArea3.setText("");
jTextArea3.append("zeilen 1 - " + start + " sind identisch\n");
jTextArea3.append("In zeile nr. " + (start+1) + " ist ein zusätzlicher enter in rechtem text\n");
break;
}
}
} else if (checkenObEnter == true && text1.size() > text2.size()) {
int start = 0;
for (int i=0; i<text2.size(); i++) { // sucht erste zeile mit unterschied um damit zu arbeiten dann
if (!text2.get(i).equals(text1.get(i))) {
start = (i);
break;
}
}
int counterChecktObRestLicheZeilenGleichSinn = 0;
for (int i=start; i < text2.size(); i++) {
if (text2.get(i).equals(text1.get(i + 1))) {
counterChecktObRestLicheZeilenGleichSinn++;
}
if(counterChecktObRestLicheZeilenGleichSinn >= (text1.size()-(start+1))) {
jTextArea3.setText("");
jTextArea3.append("zeilen 1 - " + start + " sind identisch\n");
jTextArea3.append("In zeile nr. " + (start+1) + " ist ein zusätzlicher enter in linkem text\n");
break;
}
}
}
jTextArea3.setEditable(false);
}
public DateiChecker() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jScrollPane2 = new javax.swing.JScrollPane();
jTextArea2 = new javax.swing.JTextArea();
jLabel1 = new javax.swing.JLabel();
jButton3 = new javax.swing.JButton();
jScrollPane3 = new javax.swing.JScrollPane();
jTextArea3 = new javax.swing.JTextArea();
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenuItem1 = new javax.swing.JMenuItem();
jMenuItem2 = new javax.swing.JMenuItem();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("D4T31-CH3cK3r by CypherL0rd");
setResizable(false);
jButton1.setText("3R5TE D4T31 l4d3n");
jButton1.setToolTipText("");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setText("zW31Te D4T31 l4d3n");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jTextArea1.setEditable(false);
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);
jTextArea2.setEditable(false);
jTextArea2.setColumns(20);
jTextArea2.setRows(5);
jScrollPane2.setViewportView(jTextArea2);
jLabel1.setText("h13R w3rd3N d1E Un73R5CH13D3 d4NN 4ng3z31gT W3NN M4NN Ch3cK7eN TUT");
jButton3.setText("CH3cK3N");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
jTextArea3.setEditable(false);
jTextArea3.setColumns(20);
jTextArea3.setRows(5);
jScrollPane3.setViewportView(jTextArea3);
jMenu1.setText("Help");
jMenuItem1.setText("about");
jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem1ActionPerformed(evt);
}
});
jMenu1.add(jMenuItem1);
jMenuItem2.setText("need help");
jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem2ActionPerformed(evt);
}
});
jMenu1.add(jMenuItem2);
jMenuBar1.add(jMenu1);
setJMenuBar(jMenuBar1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 246, Short.MAX_VALUE)
.addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 430, Short.MAX_VALUE)
.addComponent(jButton3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 262, Short.MAX_VALUE))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2)
.addComponent(jButton3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 557, Short.MAX_VALUE)
.addComponent(jScrollPane2)
.addComponent(jScrollPane3))
.addContainerGap())
);
pack();
}// </editor-fold>
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
JOptionPane.showMessageDialog(rootPane, "digga du bist noch nich bereit fuer die szene!");
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
if(file1 != null && file2 != null) {
vergleichJetzt();
} else {
JOptionPane.showMessageDialog(rootPane, "digga erstmal musst du datein laden, erst denken dann auf knoepfen rumdruecken...");
}
}
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
JOptionPane.showMessageDialog(rootPane, "made by CypherL0rd - die weitergabe von wissen ist die hoechste form des leben \nkontakt via PN");
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
holDatei(1);
ladText(1);
} catch (IOException exc) {
exc.printStackTrace();
}
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
try {
holDatei(2);
ladText(2);
} catch (IOException exc) {
exc.printStackTrace();
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new DateiChecker().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JMenu jMenu1;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItem1;
private javax.swing.JMenuItem jMenuItem2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JScrollPane jScrollPane3;
private javax.swing.JTextArea jTextArea1;
private javax.swing.JTextArea jTextArea2;
private javax.swing.JTextArea jTextArea3;
// End of variables declaration
}