Проблема в цикле while. Панель будет отображаться, если выполнение будет продолжено, но поскольку цикл while является бесконечным циклом, кадр никогда не обновляется, поскольку выполнение застряло в цикле.
Так что, если вы попытаетесь без бесконечного цикла, это должно сработать. Как это:
import java.awt.Color;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
//here it's better to implement Runnable than extend Thread
//in this case it's the same, but extending thread can lead to strange problems in other cases
public class Frame implements Runnable {
public static void main(String[] args) {
new Frame();
}
public Frame() {
SwingUtilities.invokeLater(this);
}
@Override
public void run() {
JFrame lFrame = null;
JPanel lPanel = null;
lPanel = new JPanel();
lPanel.setSize(580, 356);
lPanel.setLocation(10, 10);
lPanel.setVisible(true);
lPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
lFrame = new JFrame();
lFrame.setSize(600, 400);
lFrame.setLocation(200, 200);
lFrame.add(lPanel);
lFrame.setVisible(true);
}
}