2017-12-09 2 views
-2

Ich versuche, einige Listener in meinen Code zu setzen, aber ich kann nicht. Zum Beispiel möchte ich einen Listener hinzufügen und wenn ich somenthing in den Textfeldbereich schreibe, dann wähle ich den JRadioButton "From TextField" und danach drücke ich den Knopf "Do It", ich möchte den Text sehen, den ich geschrieben habe (in TextField) auf JTextArea. Wie ist das möglich?Kann keine Listener hinzufügen

import javax.swing.*; 
    import java.awt.*; 
    import java.awt.event.*; 
    import javafx.scene.Group; 

    public class Layout { 
    final static boolean shouldFill = true; 
    final static boolean shouldWeightX = true; 
    final static boolean RIGHT_TO_LEFT = false; 
    public static void addComponentsToPane(Container pane) { 
     if (RIGHT_TO_LEFT) { 
      pane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);} 

     JButton button; 
    pane.setLayout(new GridBagLayout()); 
    GridBagConstraints c = new GridBagConstraints(); 
     GridBagConstraints c1 = new GridBagConstraints(); 

    if (shouldFill) { 
    c.fill = GridBagConstraints.HORIZONTAL;} 
    JTextField text = new JTextField("Some Text"); 
    if (shouldWeightX) { 
    c.weightx = 0.5;} 
    c.fill = GridBagConstraints.HORIZONTAL; 
    c.gridx = 0; 
    c.gridy = 0; 
     c.ipady = 50; 
    pane.add(text, c); 

    String names[] = { "Ferrari", "Koenigsegg", "Alfa Romeo" }; 
     JComboBox cb = new JComboBox(names); 
    c.fill = GridBagConstraints.HORIZONTAL; 
    c.weightx = 0.5; 
    c.gridx = 1; 
    c.gridy = 0; 
     c.ipady = 50; 
    pane.add(cb, c); 

     Box box=Box.createVerticalBox(); 

    JCheckBox checkbox = new JCheckBox("Water"); 
     JCheckBox checkbox2 = new JCheckBox("Fire"); 
     JCheckBox checkbox3 = new JCheckBox("Earth"); 

     c1.fill = GridBagConstraints.HORIZONTAL; 
     c1.weightx = 0.5; 
     c1.ipady = 5; 

     box.add(checkbox); 
     box.add(checkbox2); 
     box.add(checkbox3); 

     pane.add(box,c1); 

    JPanel container = new JPanel();  
    container.setBorder(BorderFactory.createEmptyBorder(20,20,20,20)); 
    container.setLayout(new GridLayout(2, 1)); 
    JSlider slider = new JSlider(JSlider.HORIZONTAL,0,100,50); 
    slider.setPreferredSize(new Dimension(150,20)); 
    slider.setMinorTickSpacing(1); 
    slider.setMajorTickSpacing(10); 
    slider.setPaintTicks(true); 
    slider.setPaintLabels(true); 

    c.fill = GridBagConstraints.HORIZONTAL; 
    c.ipady = 40;  
    c.weightx = 0.0; 
    c.gridwidth = 3; 
    c.gridx = 0; 
    c.gridy = 1; 
    pane.add(slider, c); 

    JTextField text1 = new JTextField(" "); 
    c.ipady = 80;  
    c.weighty = 2.0; 
     c.anchor = GridBagConstraints.BASELINE; 
    c.gridx = 0;  
    c.gridwidth = 3; 
    c.gridy = 2;  
    pane.add(text1, c); 


     JRadioButton b1= new JRadioButton("From JTextField"); 
     JRadioButton b2= new JRadioButton("From JComboBox"); 
     JRadioButton b3= new JRadioButton("From JCheckboxes"); 
     JRadioButton b4= new JRadioButton("J Slider"); 

     b1.setForeground(Color.BLUE); 
     b2.setForeground(Color.RED); 
     b3.setBackground(Color.GREEN); 
     Box box1 = Box.createHorizontalBox(); 

     box1.add(b1); 
     box1.add(b2); 
     box1.add(b3); 
     box1.add(b4); 

     c.fill = GridBagConstraints.HORIZONTAL; 
     c.ipady = 10;  
    c.weighty = 1.0; 
     c.anchor = GridBagConstraints.BASELINE; 
    c.gridx = 0;  
    c.gridwidth = 3; 
    c.gridy =2; 

      pane.add(box1,c); 

    button = new JButton("Do it"); 
    c.fill = GridBagConstraints.HORIZONTAL; 
    c.ipady =0;  
    c.weighty = 1.0; 
    c.anchor = GridBagConstraints.PAGE_END; 
    c.insets = new Insets(10,0,0,0); 
    c.gridx = 0;  
    c.gridwidth =3; 
    c.gridy = 2;  
    pane.add(button, c); 
    } 

    private static void createAndShowGUI() { 

     JFrame frame = new JFrame(" "); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     addComponentsToPane(frame.getContentPane()); 

     frame.pack(); 
     frame.setVisible(true); 
     frame.setSize(600,400); 
    } 



    public static void main(String[] args) { 

     javax.swing.SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       createAndShowGUI(); 
      } 
     }); 
} 

    } 
+3

Bitte 1) formatieren Sie Ihren Code für die Lesbarkeit. Vor allem sollten Verbesserungen verbessert werden, denn wenn Ihr Code leichter zu lesen und zu verstehen ist, werden Sie wahrscheinlich mehr Leute lesen und Ihre Frage beantworten. 2) Lassen Sie uns wissen, welche Probleme Sie mit Ihrem Versuch haben, Listener hinzuzufügen. Sie zeigen keinen solchen Versuch, Listener irgendwo im obigen Code hinzuzufügen, also ist es schwierig zu wissen, was Ihr Problem ist. –

+0

Wie steht der Titel zu dem Text? Wie ist der Text mit dem Code verbunden? –

+1

[Wie man den Button benutzt] (https://docs.oracle.com/javase/tutorial/uiswing/components/button.html) und [Wie schreibe ich Action Listeners] (https://docs.oracle.com/javase /tutorial/uiswing/events/actionlistener.html) - SO ist kein Ersatz für Tutorials – MadProgrammer

Antwort

1

Lesen Sie den Abschnitt aus dem Swing-Tutorial auf How to Use Text Areas. Das erste Beispiel zeigt, wie Text von einem JTextField an eine JTextArea angehängt wird. In diesem Beispiel wird ein ActionListener für das Textfeld verwendet.

dann wähle ich den JRadioButton „Von TextField-“ und danach habe ich den Knopf drücken „Do It“, ich den Text sehen will, die ich (in TextField-) schrieb am JTextArea.

Das Konzept wird ähnlich sein, außer dass Sie den Button ActionListener zu Ihnen hinzufügen. Dann, wenn es aufgerufen wird, überprüfen Sie, ob das Optionsfeld "Von TextFeld" ausgewählt ist. Wenn dies der Fall ist, erhalten Sie den Text aus dem Textfeld und hängen ihn an den Textbereich an.

Verwandte Themen