Wyświetlanie okna programu

0

Witam,
Mam pewien problem - napisałem program do szyfrowania/odszyfrowania plików z prostym interfejsem, jednak nie wyświetla się on tak jak powinien. Testowałem go na kilku komputerach na uczelni oraz w domu i wszędzie wyświetla się dobrze, jedynie na moim laptopie są z nim problemy. Wcześniej miałem podobnie z inną aplikacją w Javie, ale zbagatelizowałem sprawę, a od tamtego czasu miałem już format dysku i reinstall systemu a problem nadal wraca. Na screenach widać to lepiej:
http://i.imgur.com/W8ed4NL.jpg?1
http://i.imgur.com/h2Vtk7a.jpg?1

PS. Na chwilę obecną jedynym rozwiązaniem tego problemu jakie udało mi się znaleźć to zmniejszenie rozmiaru okna do minimum i ponowne jego powiększenie (żeby w ogóle coś było można przeczytać) - jednak okno programu docelowo ma mieć zablokowaną opcję 'resize'. Podejrzewam, że może to mieć związek z odświeżaniem okna, ale dziwi mnie to, że na innych komputerach z taką samą konfiguracją wszystko wyświetla się prawidłowo.

Z góry dziękuję za pomoc.

0

Nie wywołujesz repaint() okna po dodaniu guzików.

0

Próbowałem z repaint(), ale nie pomogło. Poza tym jak już wcześniej pisałem - dokładnie ten sam kod (bez repaint'a) na innych komputerach wyświetla okno prawidłowo, więc problem musi tkwić w czymś innym. Dodam jeszcze, że na laptopie mam zainstalowaną Javę 8 (32 i 64-bitową).

I jeszcze coś - przed chwilą zauważyłem, że problem występuje nie tylko w moim programie. Po wejściu w Panel sterowania i dalej w Programy - Java, okno ustawień Java również jest błędnie wyświetlane (tekst na przyciskach i zakładkach częściowo znikają).

0

A ja ci mówie zebyś sie nie kłócił kiedy nie masz racji. Pokaż kawałek kodu gdzie budujesz to okienko i dodajesz do niego guziki. Masz na końcu tego wywołane pack()?

edit: to może zainstaluj javę jeszcze raz? ;]

0

Cały kod programu (używam NetBeans):

import java.awt.Color;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import javax.crypto.Cipher;
import javax.crypto.CipherOutputStream;
import javax.crypto.spec.SecretKeySpec;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

public class Scram extends javax.swing.JFrame {

JFileChooser chooser = new JFileChooser();
File plik;

public Scram() {
    initComponents();
    ImageIcon iconImage = new ImageIcon(this.getClass().getResource("Lock.png"));
    this.setIconImage(iconImage.getImage());
    getContentPane().setBackground(new Color(30, 144, 255));
}

// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    sciezka_pliku = new javax.swing.JTextField();
    jButton1 = new javax.swing.JButton();
    jButton2 = new javax.swing.JButton();
    jButton3 = new javax.swing.JButton();
    jLabel1 = new javax.swing.JLabel();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setTitle("Scrambler");
    setBounds(new java.awt.Rectangle(490, 200, 200, 200));
    setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
    setMaximumSize(new java.awt.Dimension(430, 175));
    setMinimumSize(new java.awt.Dimension(430, 175));
    setResizable(false);

    jButton1.setText("Wybierz");
    jButton1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton1ActionPerformed(evt);
        }
    });

    jButton2.setText("Zakoduj");
    jButton2.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton2ActionPerformed(evt);
        }
    });

    jButton3.setText("Odkoduj");
    jButton3.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton3ActionPerformed(evt);
        }
    });

    jLabel1.setText("Nazwa pliku:");

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addGap(16, 16, 16)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                .addGroup(layout.createSequentialGroup()
                    .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(20, 20, 20)
                    .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGroup(layout.createSequentialGroup()
                    .addComponent(jLabel1)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addComponent(sciezka_pliku, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)))
            .addGap(18, 18, 18)
            .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addContainerGap(26, Short.MAX_VALUE))
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addGap(45, 45, 45)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, 30, Short.MAX_VALUE)
                .addComponent(sciezka_pliku)
                .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            .addGap(18, 18, 18)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addContainerGap(42, Short.MAX_VALUE))
    );

    setSize(new java.awt.Dimension(446, 213));
    setLocationRelativeTo(null);
}// </editor-fold>                        

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

    chooser.showOpenDialog(null);
    plik = chooser.getSelectedFile();
    sciezka_pliku.setText(plik.getAbsolutePath());
    
}                                        

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         

    try{
        FileInputStream file = new FileInputStream(sciezka_pliku.getText());
        byte k[] = "Pa$$word".getBytes();
        SecretKeySpec key = new SecretKeySpec(k, "DES");
        Cipher enc = Cipher.getInstance("DES");
        enc.init(Cipher.ENCRYPT_MODE, key);
        chooser.showSaveDialog(null);
        plik = chooser.getSelectedFile();
        FileOutputStream outStream = new FileOutputStream(plik.getAbsolutePath());
        CipherOutputStream cos = new CipherOutputStream(outStream, enc);
        byte[] bufor = new byte[1024];
        int read;
        while((read=file.read(bufor)) != -1){
            cos.write(bufor, 0, read);
        sciezka_pliku.setText(plik.getAbsolutePath());
        }
        file.close();
        outStream.flush();
        cos.close();
        JOptionPane.showMessageDialog(null, "Plik został zakodowany");
        
    }catch(Exception e){
        JOptionPane.showMessageDialog(null, e);
    }
}                                        

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         

    try{
        FileInputStream file = new FileInputStream(sciezka_pliku.getText());
        byte k[] = "Pa$$word".getBytes();
        SecretKeySpec key = new SecretKeySpec(k, "DES");
        Cipher enc = Cipher.getInstance("DES");
        enc.init(Cipher.DECRYPT_MODE, key);
        chooser.showSaveDialog(null);
        plik = chooser.getSelectedFile();
        FileOutputStream outStream = new FileOutputStream(plik.getAbsolutePath());
        CipherOutputStream cos = new CipherOutputStream(outStream, enc);
        byte[] bufor = new byte[1024];
        int read;
        while((read=file.read(bufor)) != -1){
            cos.write(bufor, 0, read);
        
        }
        file.close();
        outStream.flush();
        cos.close();
        JOptionPane.showMessageDialog(null, "Plik został odkodowany");
    }catch(Exception e){
        JOptionPane.showMessageDialog(null, e);
    }
    sciezka_pliku.setText(plik.getAbsolutePath());
}                                        

public static void main(String args[]) {

    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new Scram().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.JTextField sciezka_pliku;
// End of variables declaration                   

private void delete(FileInputStream file) {
    throw new UnsupportedOperationException("Not supported yet.");
}

}

0

A jak dodasz na końcu konstrktora pack();?

0

Niestety dalej bez zmian :(. No nic - spróbuję jeszcze przeinstalować Javę, a jak to nie pomoże to usunę ósemkę i zobaczę jak to działa na wersji 7.

0

W każdym razie dzięki wielkie za chęć pomocy :). Temat do zamknięcia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1