First question.. I am trying to concat several strings into one long string with carriage returns after each entry. That String is then placed inside a text box. Right now, when I render my textbox, the String is all one long line. I don't understand why. Code:
if (e.getSource()== btnSelect)
{
String chosen = "";
if (cb1.isSelected())
chosen = chosen + "" + cb1.getText() + "\r\n";
if (cb2.isSelected())
chosen = chosen + "" + cb2.getText() + "\r\n";
if (cb3.isSelected())
chosen = chosen + "" + cb3.getText() + "\r\n";
if (cb4.isSelected())
chosen = chosen + "" + cb4.getText() + "\r\n";
cb1.setVisible(false);
cb2.setVisible(false);
cb3.setVisible(false);
cb4.setVisible(false);
pack();
btnSelect.setVisible (false);
btnOK.setVisible(true);
message.setText("Enter your text message");
textMessage.setVisible(true);
txtChosen.setSize(100,500);
txtChosen.setVisible(true);
txtChosen.setText(chosen);
}
This JDialog box has components that come and go. Maybe I am doing it all wrong. But the Window doesn't have room for the new components after the user selects their recipients, even though I called the pack() method. This is all experimentation on my part, and I am out of time, I need to wrap this up and turn it in. I will take away the text window if I have to, but I'd rather not since I spent all day working on it.
How can I resize my window to hold the new components? I tried calling setSize(), but it didn't work. Here is the code, I know I need to clean it up a bit.. thank you!!
import javax.swing.JDialog;
import java.awt.Frame;
import java.awt.event.ActionListener;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.event.ActionEvent;
//*****************************************
//*** FILE: Textwindow.java *
//*** PROG: *
//** PURP: Final Project - choose text message recipients *
//******************************************
class TextWindow extends JDialog implements ActionListener
{
private JPanel myPanel = null;
private JLabel message;
private JButton btnOK, btnSelect;
private JCheckBox cb1, cb2, cb3, cb4;
private JTextField textMessage, txtChosen;
//constructor
public TextWindow(Frame parent)
{
super(parent, true);
String con1 = "Doctor Who";
String con2 = "Harry Potter";
String con3 = "Frodo Baggins";
String con4 = "Gandolf the Gray";
myPanel = new JPanel();
getContentPane().add(myPanel);
message = new JLabel("Who would you like to text?");
myPanel.add(message);
message.reshape(10, 10, 200, 50);
cb1 = new JCheckBox(con1, false);
myPanel.add(cb1);
//cb1.addActionListener(this);
cb2 = new JCheckBox(con2, false);
myPanel.add(cb2);
//cb2.addActionListener(this);
cb3 = new JCheckBox(con3, false);
myPanel.add(cb3);
//cb3.addActionListener(this);
cb4 = new JCheckBox(con4, false);
myPanel.add(cb4);
//cb4.addActionListener(this);
btnSelect = new JButton("Select");
btnSelect.addActionListener(this);
myPanel.add(btnSelect);
textMessage = new JTextField(25);
myPanel.add(textMessage);
textMessage.setVisible(false);
txtChosen = new JTextField("20");
myPanel.add(txtChosen);
txtChosen.setSize(30,30);
txtChosen.setVisible(false);
btnOK = new JButton("OK");
btnOK.addActionListener(this);
myPanel.add(btnOK);
btnOK.setVisible(false);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource()== btnSelect)
{
String chosen = "";
if (cb1.isSelected())
chosen = chosen + "" + cb1.getText() + "\r\n";
if (cb2.isSelected())
chosen = chosen + "" + cb2.getText() + "\r\n";
if (cb3.isSelected())
chosen = chosen + "" + cb3.getText() + "\r\n";
if (cb4.isSelected())
chosen = chosen + "" + cb4.getText() + "\r\n";
cb1.setVisible(false);
cb2.setVisible(false);
cb3.setVisible(false);
cb4.setVisible(false);
pack();
btnSelect.setVisible (false);
btnOK.setVisible(true);
message.setText("Enter your text message");
textMessage.setVisible(true);
txtChosen.setSize(100,500);
txtChosen.setVisible(true);
txtChosen.setText(chosen);
}
if(e.getSource()==btnOK)
{
setVisible(false);
}
}//END LISTENER
}//END TEXTWINDOW CLASS

New Topic/Question
Reply




MultiQuote




|