2017-07-24 3 views
1

Ich habe ein Problem mit JComboBox, ich sehe es nicht in meinem Fenster. Ich weiß nicht, was ich falsch mache. Ich habe in meinem Code Koordinaten von JComboBox hinzugefügt, aber ich kann es nicht sehen, nachdem ich den Code ausgeführt habe.Java JComboBox kann nicht sehen

Mein Code:

import java.awt.FlowLayout; 
import javax.swing.JButton; 
import javax.swing.JComboBox; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
class klasa extends JFrame 
{ 
    public klasa() 
    { 
     super("Program to obliczania wartosci logicznych"); 
     setSize(300, 250); 
     setVisible(true); 
     JButton oblicz = new JButton("Oblicz"); 
     oblicz.setBounds(190, 160, 80, 40); 
     add(oblicz); 
     String[]opcje= {"OR","AND","XOR"}; 
     JComboBox<String> lista = new JComboBox<>(opcje); 
     lista.setBounds(150, 150, 2, 4); 
     add(lista); 
     //lista.setVisible(true); 
    } 

    public static void main(String[] args) 
    { 
    klasa k1 = new klasa(); 
    } 
} 
+0

Ihre JCombobox wird angezeigt, wird aber von einer Schaltfläche überlagert - ändern Sie einfach die Größe Ihres Fensters und sehen Sie. Sieht aus wie Sie sollten ein Layout verwenden, um dies zu beheben und spielen mit Element-Koordinaten –

Antwort

1

Zu allererst Sie keinen Plan für den Rahmen gesetzt, die standardmäßig bedeutet, seine die Border verwenden. Also platzierst du die zwei Objekte übereinander.

Versuchen Sie andernfalls, den Frame im Event Dispatch Thread zu instanziieren. Verwenden Sie Ihre Codebasis wäre es etwa so aussehen:

import javax.swing.JButton; 
import javax.swing.JComboBox; 
import javax.swing.JFrame; 
import javax.swing.SwingUtilities; 

public class klasa extends JFrame { 

    public JComboBoxExample() { 
     super("Program to obliczania wartosci logicznych"); 

     this.setLayout(null); 

     setSize(300, 250); 
     setVisible(true); 
     JButton oblicz = new JButton("Oblicz"); 
     oblicz.setBounds(190, 160, 80, 40); 
     add(oblicz); 
     String[]opcje= {"OR","AND","XOR"}; 
     JComboBox<String> lista = new JComboBox<>(opcje); 
     lista.setBounds(150, 150, 20, 40); 
     add(lista); 
    } 

    public static void main(String[] args) { 

     SwingUtilities.invokeLater(new Runnable() { 

      @Override 
      public void run() { 
       new klasa(); 
      } 

     }); 

    } 

} 

Schauen Sie sich die doc für weitere Informationen.

+0

Vielen Dank, es funktioniert –

0

Platzieren Sie die Methoden setSize und setVisible nach der JComboBox.

class klasa extends JFrame 
{ 
    public klasa() 
    { 
     super("Program to obliczania wartosci logicznych"); 
     //setSize(300, 250); Comment this section out 
     //setVisible(true); Comment this section out 
     JButton oblicz = new JButton("Oblicz"); 
     oblicz.setBounds(190, 160, 80, 40); 
     add(oblicz); 
     String[]opcje= {"OR","AND","XOR"}; 
     JComboBox<String> lista = new JComboBox<>(opcje); 
     lista.setBounds(150, 150, 2, 4); 
     add(lista); 
     //lista.setVisible(true); 
     setSize(300, 250); 
     setVisible(true); 
    } 

    public static void main(String[] args) 
    { 
     klasa k1 = new klasa(); 
    } 
} 
+0

Es funktioniert, das ist das gleiche Problem wie zuerst –