我在將JLabel添加到JFrame時遇到問題。我使用了幾個教程中描述的JPanel,但Label不會在Frame中彈出;與其他擺動組件如JTextField,JButton等相同的問題。繪製線條,矩形等工作。我希望有人知道,我在這裏做什麼樣的錯誤:將JLabel添加到JFrame中
package plot1;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
public class Gui extends JFrame {
private JPanel contentPane;
public Gui(){
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
setSize(1200, 600);
setLayout(null);
setLocationRelativeTo(null);
setTitle("Plot");
addWindowListener(new WindowAdapter(){
public void windowClosed(WindowEvent evnt){
System.exit(0);
}
});
setResizable(false);
JLabel lblStanFunc = new JLabel("Die Funktionssyntax lautet:");
lblStanFunc.setBounds(800, 40, 300, 30);
lblStanFunc.setVisible(true);
add(lblStanFunc);
}
}
主方法是在另一個類:
package plot1;
public class Main {
public static void main(String[] args){
new Gui().setVisible(true);;
}
}
框彈出如預期,但JLabel的缺失。感謝所有有用的評論。
我無法複製此內容。我可以很好地看到標籤。它在框架的右上方。您的屏幕不夠大,無法顯示整個JFrame? – Sweeper
1)爲了更快地獲得更好的幫助,請發佈[MCVE]或[簡短,獨立,正確的示例](http://www.sscce.org/)。 2)Java GUI必須在不同的語言環境中使用不同的PLAF來處理不同的操作系統,屏幕大小,屏幕分辨率等。因此,它們不利於像素的完美佈局。請使用佈局管理器或[它們的組合](http://stackoverflow.com/a/5630271/418556)以及[white space]的佈局填充和邊框(http://stackoverflow.com/a/17874718/ 418556)。 –
您可能需要'pack'調用,並且您需要根據Swing上的Java教程在Event Dispatch Thread上運行GUI。 –