Toggle Theme Editor
Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Charcoal

Hỏi Cách Auto Save Utf-8 Trong Java

Discussion in 'Xây dựng các ứng dụng Java khác, các vấn đề khác' started by kienxx, 3/4/18.

  1. kienxx

    kienxx Member

    Có lẽ lưu dữ liệu text ra file là cách dễ thực hiện nhất để chương trình ko bị "chạy lại từ đầu"
    Mình làm trên Lap lưu những câu tiếng Việt ra file.dat thì nó auto lưu UTF-8 nên ok. Nhưng chạy trên máy khác thì lại khác, chương trình chạy tạo ra file, ghi rồi lưu dưới dạng ASII, nên chương trình hiển thị bị lỗi font, mình xin hỏi có cách nào khắc phục ko?
    Code:
       try {   
        FileOutputStream fos= new FileOutputStream("test.dat",true);
        PrintWriter pw = new PrintWriter(fos);
        pw.println("Somethings");
        pw.close();
    }catch....
    
     
  2. D.A.N_3002

    D.A.N_3002 Active Member

    Đây là cách mình dùng để lưu file dạng UTF8
    PHP:
    FileOutputStream fo = new FileOutputStream(//path, //append);
    OutputStreamWriter osw = new OutputStreamWriter(fo"UTF-8");
    osw.write(//text);
    osw.flush();
    fo.close();
     
    Last edited: 3/4/18
    kienxx and JackV like this.
  3. kienxx

    kienxx Member

    Chút xíu về mình thử liền
     
    D.A.N_3002 likes this.
  4. kienxx

    kienxx Member

    Mình làm thì run ok rồi mà chưa biết test máy khác thì thế nào. Cho mình hỏi mã để setText cho Button ghi ở 4 góc, mình chỉ biết <br> để xuống dòng thôi.
    [​IMG]
     
  5. D.A.N_3002

    D.A.N_3002 Active Member

    Mình cũng không rõ cái này lắm, nó liên quan đến HTML. Bạn có thể tham khảo ở đây: https://www.w3schools.com/tags/tag_html.asp
    Hoặc bạn có thể tạo ra 1 Image giống như ảnh bạn gửi ở trên, sau đó set Image đó làm icon cho Jbutton (hoặc Jlabel). Yếu điểm ở đây là bạn không thể thay đổi text dc nx :(
     
    kienxx likes this.
  6. kienxx

    kienxx Member

    Mình cũng đang mò html :v DAN ngủ trễ thế
     
  7. D.A.N_3002

    D.A.N_3002 Active Member

    Thức làm bài bạn ạ :(( tại sắp thi nên h bài tập nhiều vô kể
     
    kienxx likes this.
  8. JackV

    JackV Administrator Staff Member

    Không để chữ gì vào cả nha, setIcon (ảnh nền) thôi, setIcon cho các trường hợp đưa chuột vào, click, ....
     
    kienxx likes this.
  9. kienxx

    kienxx Member

    Tại nó cập nhật theo dữ liệu nên ko làm ảnh đc. Vì mình định làm PreviewMode, mà thui rồi :v
     
  10. D.A.N_3002

    D.A.N_3002 Active Member

    Ok :) Sau một hồi nghiên cứu thì mình đã tìm ra cách :) Bạn hãy xem qua VD của mình :
    PHP:
    public class NewJFrame extends javax.swing.JFrame {
        public 
    NewJFrame() {
            
    initComponents();
            
    String space "&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;";
            
    String align "<pre></pre><pre></pre><pre></pre><pre></pre>";
            
    String text "<html>Text_1" space "Text_2" align "Text_3" space "Text_4 <html>";
            
    jButton1.setText(text);
            
        }

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

            
    jButton1 = new javax.swing.JButton();

            
    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

            
    jButton1.setFont(new java.awt.Font("Times New Roman"124)); // NOI18N
            
    jButton1.setText("jButton1");

            
    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            
    getContentPane().setLayout(layout);
            
    layout.setHorizontalGroup(
                
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .
    addGroup(javax.swing.GroupLayout.Alignment.TRAILINGlayout.createSequentialGroup()
                    .
    addContainerGap(134Short.MAX_VALUE)
                    .
    addComponent(jButton1javax.swing.GroupLayout.PREFERRED_SIZE530javax.swing.GroupLayout.PREFERRED_SIZE)
                    .
    addGap(106106106))
            );
            
    layout.setVerticalGroup(
                
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .
    addGroup(layout.createSequentialGroup()
                    .
    addGap(989898)
                    .
    addComponent(jButton1javax.swing.GroupLayout.PREFERRED_SIZE230javax.swing.GroupLayout.PREFERRED_SIZE)
                    .
    addContainerGap(143Short.MAX_VALUE))
            );

            
    pack();
        }
    // </editor-fold>                       

        
    public static void main(String args[]) {
            try {
                for (
    javax.swing.UIManager.LookAndFeelInfo info javax.swing.UIManager.getInstalledLookAndFeels()) {
                    if (
    "Nimbus".equals(info.getName())) {
                        
    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                        break;
                    }
                }
            } catch (
    ClassNotFoundException ex) {
                
    java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVEREnullex);
            } catch (
    InstantiationException ex) {
                
    java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVEREnullex);
            } catch (
    IllegalAccessException ex) {
                
    java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVEREnullex);
            } catch (
    javax.swing.UnsupportedLookAndFeelException ex) {
                
    java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVEREnullex);
            }
            
    java.awt.EventQueue.invokeLater(new Runnable() {
                public 
    void run() {
                    new 
    NewJFrame().setVisible(true);
                }
            });
        }
        
    // Variables declaration - do not modify                     
        
    private javax.swing.JButton jButton1;
        
    // End of variables declaration                   
    }
    Đây là Demo :
    [​IMG]
    Giải thích : Ở đây mình dùng HTML để hiện thị text
    String space: "&emsp" là 1 ký tự đặc biệt trong HTML để cách dòng
    String align: tag "<pre></pre>" tag dùng để xuống dòng (nên dùng cái này thay cho <br>)
     
    kienxx likes this.
  11. kienxx

    kienxx Member

    Ghê quá DAN :v tks DAN. Mình làm được rồi. Giờ mình đang tìm hiểu database và cách đưa lên host chạy
     
    D.A.N_3002 likes this.

Chia sẻ trang này

Loading...