Witam
Mam mały problem w mojej aplikacji. Nie wiem w jaki sposób przekazać informacji z Field z pierwszej ramki do drugiej.
a dokładniej :
- Chciałbym aby tekst wpisany przez użytkownika w txb_Player1(znajduje się w Panel_Start, w Frame_Start) byl przekazywany do lbl_name (znajduje sie w Panel_Player1, w Frame_Game)
niestety cos takiego nie dziala :
//lbl_name.setText(panel_Start.get_name_Player1());
- a drugim problem z ktorym nie moge sobie poradzic jest to że chciałbym aby po wcisnieciu btn_Check(panel_Word), pierwsza litera z txb_Character (panel_Character) wpisywana była do txb_Letter(panel_Word)
Próbowałem już wielu "kombinacji" ale niestety nadal coś nie tak jest.
Frame_Start
import javax.swing.JButton;
import javax.swing.JFrame;
public class Frame_Start extends JFrame{
Panel_Start panel_Start;
public Frame_Start() {
initialize_Components();
prepare_Frame();
}
public void prepare_Frame(){
setSize(450, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(null);
setVisible(true);
setResizable(false);
}
public void initialize_Components(){
panel_Start = new Panel_Start();
panel_Start.setBounds(0, 0, 450, 300);
add(panel_Start);
}
}
Panel_Start
import java.awt.Frame;
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.JPanel;
import javax.swing.JTextField;
public class Panel_Start extends JPanel {
JTextField txb_Player1;
JTextField txb_Player2;
JLabel lbl_Player1;
JLabel lbl_Player2;
JButton btn_Start;
String name_Player1;
String name_Player2;
Frame_Game frame2;
public Panel_Start() {
initializeComponents();
prepare_Panel();
event_Button();
}
public String get_name_Player1(){
return name_Player1;
}
public String get_name_Player2(){
return name_Player2;
}
private void prepare_Panel(){
setLayout(null);
setVisible(true);
}
private void initializeComponents(){
txb_Player1 = new JTextField();
txb_Player2 = new JTextField();
name_Player1=txb_Player1.getText();
name_Player2=txb_Player2.getText();
lbl_Player1 = new JLabel("Gracz nr 1");
lbl_Player2 = new JLabel("Gracz nr 2");
btn_Start = new JButton("Start");
txb_Player1.setBounds(50, 100, 150, 25);
txb_Player2.setBounds(250, 100, 150, 25);
lbl_Player1.setBounds(50, 50, 100, 30);
lbl_Player2.setBounds(250, 50, 100, 30);
btn_Start.setBounds(175, 150, 100, 25);
add(txb_Player1);
add(txb_Player2);
add(btn_Start);
add(lbl_Player1);
add(lbl_Player2);
}
public void event_Button(){
btn_Start.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
name_Player1 = txb_Player1.getText();
name_Player2 = txb_Player2.getText();
frame2 = new Frame_Game();
}
});
}
}
Frame_Game
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class Frame_Game extends JFrame {
Panel_Character panel_Character;
Panel_Player1 panel_Player1;
Panel_Player2 panel_Player2;
Panel_Word panel_Word;
BorderLayout borderLayout;
public Frame_Game() {
initialize_Components();
prepare_Frame();
}
private void prepare_Frame() {
setSize(550, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
getContentPane().setLayout(null);
setVisible(true);
}
private void initialize_Components() {
Panel_Character panel_Character = new Panel_Character();
Panel_Player1 panel_Player1 = new Panel_Player1();
Panel_Player2 panel_Player2 = new Panel_Player2();
Panel_Word panel_Word = new Panel_Word();
panel_Player1.setBounds(0, 0, 185, 200);
getContentPane().add(panel_Player1);
panel_Character.setBounds(185, 0, 165, 200);
getContentPane().add(panel_Character);
panel_Player2.setBounds(350, 0, 185, 200);
getContentPane().add(panel_Player2);
panel_Word.setBounds(0, 200, 550, 100);
getContentPane().add(panel_Word);
}
}
Panel_Character
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Panel_Character extends JPanel {
JLabel lbl1;
JTextField txb_Character;
String character;
public Panel_Character() {
initialize_Components();
prepare_Panel();
}
private void prepare_Panel() {
setLayout(null);
setVisible(true);
}
private void initialize_Components() {
lbl1 = new JLabel("Podaj litere");
lbl1.setBounds(50, 20, 100, 30);
add(lbl1);
txb_Character = new JTextField();
txb_Character.setBounds(30, 70, 100, 25);
character = txb_Character.getText();
add(txb_Character);
}
public String get_Character() {
character = txb_Character.getText();
return character;
}
public void set_Character(String word){
character = word;
txb_Character.setText(character);
}
}
Panel_Player1
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Panel_Player1 extends JPanel{
JLabel lbl_name;
Panel_Start panel_Start;
public Panel_Player1() {
initialize_Components();
prepare_Panel();
}
private void initialize_Components() { /// POPRAWIC !!!! nie wczytuje nazwy gracza z Start
lbl_name = new JLabel();
lbl_name.setText("Player1");
//lbl_name.setText(panel_Start.get_name_Player1());
lbl_name.setBounds(50, 50, 100, 30);
add(lbl_name);
}
private void prepare_Panel() {
setLayout(null);
setVisible(true);
}
}
Panel_Word
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Panel_Word extends JPanel {
JButton btn_Check;
String word;
String[] temp;
String delimiter;
Random randomGenerator;
int randomInt;
String rword;
StringBuffer gword;
JTextField txb_Letter;
int error;
Panel_Character panel_Character;
public Panel_Word() {
initialize_Components();
prepare_Panel();
event();
}
private void prepare_Panel() {
setLayout(null);
setVisible(true);
}
private void initialize_Components() {
btn_Check = new JButton("Sprawdz");
btn_Check.setBounds(400,25 , 100, 25);
add(btn_Check);
txb_Letter = new JTextField();
txb_Letter.setBounds(10, 10, 300, 30);
add(txb_Letter);
word = "computer|radio|calculator|teacher";
delimiter = "\\|";
randomGenerator = new Random();
temp = word.split(delimiter);
randomInt = randomGenerator.nextInt(temp.length);
rword = new String(temp[randomInt]);
char positions[] = new char[rword.length()];
for (int i=0; i<rword.length(); i++) {
positions[i] = '.';
}
String s = new String(positions);
gword = new StringBuffer(s);
//txb_Letter.setText("");
}
private void event() {
btn_Check.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String s , t;
char a;
error = 0;
panel_Character = new Panel_Character();
s = panel_Character.get_Character();
a = s.charAt(0);
txb_Letter.setText(Character.toString(a));
panel_Character.set_Character(" ");
}
});
/* if (rword.indexOf(s) == -1) error++;*/
}
}