Java JList не отображается - PullRequest
       31

Java JList не отображается

1 голос
/ 17 июля 2010

На каждом JList, который я создал ... Я должен был щелкнуть по нему, прежде чем ЛЮБОЙ из JList появится. Это было похоже ... невидимым, но все еще там ... пока я не нажал на него ...

Я пробовал list.setVisible(true) и тому подобное ... но не повезло. :\ Помогите? Да, я пробовал Javadoc, Google и так поиск. > _ <Я никогда не сталкивался с такой проблемой. </p>

Код:

import java.applet.Applet;
import java.awt.*;
import javax.swing.*;
import javax.swing.JList;
import java.awt.event.*;
import java.util.ArrayList;
import java.io.*;
import java.util.*;

public class inventory extends JApplet implements MouseListener {

public static String newline;
public static JList list;
int gold = 123;

    public void init() {



ArrayList<String> arr = new ArrayList<String>();
arr.add("Hatchet");
arr.add("Sword");
arr.add("Shield");
arr.add(gold + " Gold");
System.out.println("You have " + arr.size() + " items in your inventory.");
showInventory(arr);



        list = new JList(arr.toArray());

        add(list);

        list.addMouseListener(this);

        list.setVisible(true);

    }

public static void showInventory (ArrayList<String> theList) {
for (int i = 0; i < theList.size(); i++) {
System.out.println(theList.get(i));
}
}


    public void mousePressed(MouseEvent e) { }

    public void mouseReleased(MouseEvent e) {
        Object index = list.getSelectedValue();
       System.out.println("You have selected: " + index);
    }

    public void mouseEntered(MouseEvent e) { }

    public void mouseExited(MouseEvent e) { }

    public void mouseClicked(MouseEvent e) { }




    public void paint(Graphics g) {

    }
}

Ответы [ 3 ]

2 голосов
/ 17 июля 2010

Или, если вы хотите переопределить метод рисования, замените его на:

public void paint(Graphics g) {
   super.paint(g);
   // your code
}
1 голос
/ 01 декабря 2011

Вы можете добавить this.setVisible(true); строку в конце метода init(), например

list.addMouseListener(this);

list.setVisible(true);
this.setVisible(true);
1 голос
/ 17 июля 2010

Вы должны стереть эту часть из своего кода:

public void paint(Graphics g) {

}

В основном ваша проблема заключалась в том, что вы переписывали метод рисования пустым методом. Вот почему ваш список не отображался должным образом при запуске.

...