wazxse5 Temat założony przez niniejszego użytkownika |
[Java] String jako tablica char » 2014-12-02 12:52:37 Piszę program szyfrujący w Java Swing. Potrzebuję przyporządkować każdej literze z Stringa (tekst do zaszyfrowania) odpowiednią liczbę z przedziału <0,25> (tzw. szyfr Szyfr Vigenère'a) tylko nie wiem jak to zrobić w javie, w c++ to nie problem :) myślałem nad czymś w tym stylu String text = "sample"; int[] textCode = new int[ text.length() ]; for( int i = 0; i < text.length(); i++ ) { switch( text[ i ] ) { case 'a': textCode = 1; break; } }
(to tylko kawałek kodu) Z tym że to nie działa, może jakoś z kodami ASCII by zrobić ale nie wiem jak Proszę o pomoc Oto cały kod programu import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;
import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField;
public class Main extends JFrame implements ActionListener { JMenuBar menuBar; JMenu menuFile, menuTools, menuHelp; JMenuItem mOpen, mSave, mExit, mEncode, mDecode, mAbout; JTextField tKey; JTextArea tText; JLabel lTitle1, lTitle2; JButton bEncode, bDecode, bClean; JScrollPane sScroll; public Main() { setSize( 800, 600 ); setTitle( "Menu" ); setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); setLayout( null ); setResizable( false ); menuBar = new JMenuBar(); menuFile = new JMenu( "Plik" ); mOpen = new JMenuItem( "Otwórz" ); mSave = new JMenuItem( "Zapisz" ); mExit = new JMenuItem( "Wyjście" ); menuTools = new JMenu( "Narzędzia" ); mEncode = new JMenuItem( "Zaszyfruj" ); mDecode = new JMenuItem( "Odszyfruj" ); menuHelp = new JMenu( "Pomoc" ); mAbout = new JMenuItem( "Informacje" ); setJMenuBar( menuBar ); menuBar.add( menuFile ); menuFile.add( mOpen ); menuFile.add( mSave ); menuFile.addSeparator(); menuFile.add( mExit ); mExit.addActionListener( this ); menuBar.add( menuTools ); menuTools.add( mEncode ); mEncode.addActionListener( this ); menuTools.add( mDecode ); mDecode.addActionListener( this ); menuBar.add( menuHelp ); menuHelp.add( mAbout ); mAbout.addActionListener( this ); lTitle1 = new JLabel( "KLUCZ" ); lTitle1.setBounds( 20, 20, 100, 30 ); lTitle1.setFont( new Font( null, Font.BOLD, 18 ) ); add( lTitle1 ); tKey = new JTextField(); tKey.setBounds( 20, 50, 200, 25 ); add( tKey ); lTitle2 = new JLabel( "TEKST" ); lTitle2.setBounds( 20, 90, 100, 30 ); lTitle2.setFont( new Font( null, Font.BOLD, 18 ) ); add( lTitle2 ); tText = new JTextArea(); sScroll = new JScrollPane( tText ); sScroll.setBounds( 20, 120, 600, 400 ); add( sScroll ); bEncode = new JButton( "Szyfruj" ); bEncode.setBounds( 250, 35, 170, 50 ); bEncode.setFont( new Font( null, Font.PLAIN, 22 ) ); bEncode.addActionListener( this ); add( bEncode ); bDecode = new JButton( "Odszyfruj" ); bDecode.setBounds( 450, 35, 170, 50 ); bDecode.setFont( new Font( null, Font.PLAIN, 22 ) ); bDecode.addActionListener( this ); add( bDecode ); bClean = new JButton( "Wyczyść" ); bClean.setBounds( 640, 120, 130, 30 ); bClean.setFont( new Font( null, Font.BOLD, 16 ) ); bClean.addActionListener( this ); add( bClean ); } String Encode( String text, String key ) { String result = "sample"; int[] textCode = new int[ text.length() ]; int[] keyCode = new int[ key.length() ]; return result; } public static void main( String[] args ) { Main okno = new Main(); okno.setVisible( true ); } @ Override public void actionPerformed( ActionEvent e ) { Object event = e.getSource(); if( event == mAbout ) { JOptionPane.showMessageDialog( this, "To jest program szyfrujący", "Informacje", JOptionPane.INFORMATION_MESSAGE ); } if( event == mExit ) { int odp = JOptionPane.showConfirmDialog( this, "Czy napewno chcesz wyjść?", "Uwaga!", JOptionPane.YES_NO_OPTION ); if( odp == JOptionPane.YES_OPTION ) dispose(); } if( event == bEncode || event == mEncode ) { String text = tText.getText(); tText.setText( Encode( tText.getText(), tKey.getText() ) ); } if( event == bClean ) { tKey.setText( null ); tText.setText( null ); } } }
|