La modification de la JFrame titre
Ce code compile, j'ai juste ne peut pas obtenir le nom à modifier sur la barre de titre.
import java.awt.BorderLayout;
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.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class VolumeCalculator extends JFrame implements ActionListener
{
private JTabbedPane jtabbedPane;
private JPanel options;
JTextField poolLengthText, poolWidthText, poolDepthText, poolVolumeText, hotTub,
hotTubLengthText, hotTubWidthText, hotTubDepthText, hotTubVolumeText, temp, results,
myTitle;
JTextArea labelTubStatus;
public VolumeCalculator()
{
setSize(400, 250);
setVisible(true);
setSize(400, 250);
setVisible(true);
setTitle("Volume Calculator");
setSize(300, 200);
JPanel topPanel = new JPanel();
topPanel.setLayout(new BorderLayout());
getContentPane().add(topPanel);
createOptions();
jtabbedPane = new JTabbedPane();
jtabbedPane.addTab("Options", options);
topPanel.add(jtabbedPane, BorderLayout.CENTER);
}
/* CREATE OPTIONS */
public void createOptions()
{
options = new JPanel();
options.setLayout(null);
JLabel labelOptions = new JLabel("Change Company Name:");
labelOptions.setBounds(120, 10, 150, 20);
options.add(labelOptions);
JTextField newTitle = new JTextField("Some Title");
newTitle.setBounds(80, 40, 225, 20);
options.add(newTitle);
myTitle = new JTextField();
myTitle.setBounds(80, 40, 225, 20);
myTitle.add(labelOptions);
JButton newName = new JButton("Set New Name");
newName.setBounds(60, 80, 150, 20);
newName.addActionListener(this);
options.add(newName);
JButton Exit = new JButton("Exit");
Exit.setBounds(250, 80, 80, 20);
Exit.addActionListener(this);
options.add(Exit);
}
public void actionPerformed(ActionEvent event)
{
JButton button = (JButton) event.getSource();
String buttonLabel = button.getText();
if ("Exit".equalsIgnoreCase(buttonLabel))
{
Exit_pressed();
return;
}
if ("Set New Name".equalsIgnoreCase(buttonLabel))
{
New_Name();
return;
}
}
private void Exit_pressed()
{
System.exit(0);
}
private void New_Name()
{
this.setTitle(myTitle.getText());
}
private void Options()
{
}
public static void main(String[] args)
{
JFrame frame = new VolumeCalculator();
frame.setSize(380, 350);
frame.setVisible(true);
}
}
setTitle() doit être appelée à partir d'une instance d'objet, pas de statique JFrame. Soyez prudent lorsque vous nommez une instance de l'objet pour éviter la confusion avec un nom de classe.
OriginalL'auteur Mike | 2011-03-30
Vous devez vous connecter pour publier un commentaire.
Si votre classe extends JFrame ensuite utiliser
this.setTitle(newTitle.getText());
Si non, et il contient une JFrame disons nommé myFrame, puis utilisez
myFrame.setTitle(newTitle.getText());
Maintenant que vous avez posté votre programme, il est évident que vous avez seulement besoin d'un component swing jtextfield pour obtenir le nouveau titre. Ces changements feront l'affaire:
et:
et:
Essayez d'ajouter du texte à votre newTitle component swing jtextfield: newTitle.setText("titre");
J'ai essayé ce.setTitle(newTitle.getText("Titre")); Pas de chance
Modifiez cette ligne component swing jtextfield newTitle = new component swing jtextfield(); component swing jtextfield newTitle = new component swing jtextfield("un Titre"); Si elle n'a pas de poste de travail, l'ensemble de votre code.
J'ai ajouté tout le code ci-dessus.
OriginalL'auteur Costis Aivalis
newTitle
est une variable locale où vous créez les champs. Ainsi, lorsque que les fonctions qui se termine, la variablenewTitle
, n'existe plus. (Component swing jtextfield qui a été référencé parnewTitle
ne subsistent cependant.)Ainsi, augmenter la portée de la variable, de sorte que vous pouvez accéder à une autre méthode.
Maintenant, si je clique sur "Définir le Nouveau Nom de la touche" " le changement de titre de "spam". Je ne peux pas le changer. Après j'ai fermer et ré-ouvrir la tuile est en retrait.
OriginalL'auteur Ishtar
Je vous recommande fortement de vous apprendre à utiliser la mise en page les gestionnaires d'obtenir la mise en page que vous voulez voir.
null
mises en page sont fragiles, et ne causent pas d'ennuis.Essayer cette source & vérifier les commentaires.
OriginalL'auteur Andrew Thompson
ces méthodes peuvent aider à
setTitle("votre nouveau titre");
ou
super("votre nouveau titre");
OriginalL'auteur qatar