Witam wszystkich serdecznie,
na wstępie zaznaczę, że jest to mój pierwszy post na tym forum. Oraz są to moje początki z językiem Java. Na zaliczenie laborek dostałem do napisania program szyfrujący dany tekst, tak więc aby nie utrudniać sobie życia zdecydowałem się na metodę "przestawieniową". Po wykonaniu okienka i wszystkich prostych elementów zaczęły się schody. Mianowicie, moim największym problemem jest w tej chwili wyświetlenie zakodowanego tekstu w JTextField. Wykonując to metodą setText(); otrzymuję jedynie ostatnią literę z ciągu znaków. Przy czym wyświetlając zakodowany tekst poprzez System.out.print(yWynik); w konsoli pojawia mi się całość. Brakuje mi już pomysłów i doświadczenia jak rozwiązać ten problem, niestety wujek google również nie potrafi mi pomóc.
Będę wdzięczny za podpowiedzi i skromną krytykę za mój kod :) tak jak pisałem to początki.
Aby nie szukać fragment z ActionEvent a poniżej pełny kod.
public void actionPerformed(ActionEvent e) {
xKoduj = jtKoduj.getText(); //pobieranie tekstu do kodowania
xOdkoduj = jtKoduj.getText(); //pobieranie tekstu do odkodowania
Object zrodlo = e.getSource(); //PRZYCISK kodowanie
if (zrodlo==bKoduj)
{
for(int i=0;i<xKoduj.length();i++){
yWynik=(char)(xKoduj.charAt(i)+ 1);
// System.out.print(yWynik);
tWyswietl.setText(String.valueOf(yWynik));
}
}
else if (zrodlo==bOdkoduj) //PRZYCISK odkodowanie
{
for(int i=0;i<xOdkoduj.length();i++)
{
yWynik=(char)(xKoduj.charAt(i)- 1);
// System.out.print(yWynik);
tWyswietl.setText(String.valueOf(yWynik));
}
}
Pełny kod.
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.management.monitor.StringMonitorMBean;
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.JTextField;
public class Kodowanie extends JFrame implements ActionListener {
JButton bKoduj, bOdkoduj, bUstawienia, bExit;
JLabel tOpis;
JLabel tOpis2;
JTextField jtKoduj, tWyswietl;
JMenuBar menuBar;
JMenu menuPlik, menuAbout;
JMenuItem mUstawienia, mZamknij, mOProgramie;
String xKoduj;
String xOdkoduj;
char temp;
char yWynik;
int local_wartosc;
Kodowanie_Ustawienia wartosc = new Kodowanie_Ustawienia ();
public Kodowanie (){
setSize(415,500);
setTitle("Kodowanie");
setLayout(null);
menuBar = new JMenuBar();
menuPlik = new JMenu("Plik");
mUstawienia = new JMenuItem("Ustawienia");
mZamknij = new JMenuItem("Zamknij");
menuPlik.add(mUstawienia);
menuPlik.addSeparator();
menuPlik.add(mZamknij);
mZamknij.addActionListener(this);
mUstawienia.addActionListener(this);
menuAbout = new JMenu("About");
mOProgramie = new JMenuItem("O Programie");
menuAbout.add(mOProgramie);
mOProgramie.addActionListener(this);
setJMenuBar(menuBar);
menuBar.add(menuPlik);
menuBar.add(menuAbout);
bKoduj = new JButton("Zakoduj");
bKoduj.setBounds(50, 150, 100, 25);
add(bKoduj);
bKoduj.addActionListener(this);
bOdkoduj = new JButton("Odkoduj");
bOdkoduj.setBounds(250, 150, 100, 25);
add(bOdkoduj);
bOdkoduj.addActionListener(this);
bUstawienia = new JButton("Ustawienia");
bUstawienia.setBounds(50, 390, 100, 25);
add(bUstawienia);
bUstawienia.addActionListener(this);
bExit = new JButton("Exit");
bExit.setBounds(250, 390, 100, 25);
add(bExit);
bExit.addActionListener(this);
tOpis = new JLabel("Po Zakodowaniu: "+"\n");
tOpis.setBounds(50, 265, 100, 25);
add(tOpis);
tOpis2 = new JLabel("Wprowadz tekst do zakodowania: "+"\n");
tOpis2.setBounds(50, 60, 250, 25);
add(tOpis2);
tWyswietl = new JTextField();
tWyswietl.setBounds(50, 300, 300, 25);
tWyswietl.setForeground(Color.BLUE);
add(tWyswietl);
tWyswietl.addActionListener(this);
jtKoduj = new JTextField();
jtKoduj.setBounds(50, 100, 300, 25);
add(jtKoduj);
jtKoduj.addActionListener(this);
}
public static void main (String[] args)
{
Kodowanie kod = new Kodowanie();
kod.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
kod.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
xKoduj = jtKoduj.getText(); //pobieranie tekstu do kodowania
xOdkoduj = jtKoduj.getText(); //pobieranie tekstu do odkodowania
Object zrodlo = e.getSource(); //PRZYCISK kodowanie
if (zrodlo==bKoduj)
{
for(int i=0;i<xKoduj.length();i++){
yWynik=(char)(xKoduj.charAt(i)+ 1);
// System.out.print(yWynik);
tWyswietl.setText(String.valueOf(yWynik));
}
}
else if (zrodlo==bOdkoduj) //PRZYCISK odkodowanie
{
for(int i=0;i<xOdkoduj.length();i++)
{
yWynik=(char)(xKoduj.charAt(i)- 1);
// System.out.print(yWynik);
tWyswietl.setText(String.valueOf(yWynik));
}
}
tWyswietl.setText(String.valueOf(yWynik));
Object zrodlo2 = e.getSource();
if (zrodlo2 == bExit)
{
dispose();
}
else if (zrodlo2 == bUstawienia) //PRZYCISK otwieranie okna ustawien
{
Kodowanie_Ustawienia Kodowanie_Ustawienia = new Kodowanie_Ustawienia();
Kodowanie_Ustawienia.setVisible(true);
}
Object zrodlo3 = e.getSource();
if (zrodlo3 == jtKoduj) //POLE TEKSTOWE tekst do zakodowania/odkodowania
{
}
else if (zrodlo3 == tWyswietl)
{
}
Object zrodlo4 = e.getSource();
if (zrodlo4 == mZamknij) //Menu -> Zamknij
{
dispose();
}
else if (zrodlo4 == mUstawienia) //Menu -> Ustawienia
{
Kodowanie_Ustawienia Kodowanie_Ustawienia = new Kodowanie_Ustawienia();
Kodowanie_Ustawienia.setVisible(true);
}
Object zrodlo5 = e.getSource();
if (zrodlo5 == mOProgramie) //Menu -> O Programie
{
About About = new About();
About.setVisible(true);
}
}
}
Shalom