0
我有這樣的代碼組件沒有出現在西部邊界佈局
package com.company;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Alarm extends JFrame {
JFrame frame = new JFrame("Java Alarm Clock");
JMenuBar menuBar = new JMenuBar();
JMenu clock = new JMenu("Clock");
JMenu alarm = new JMenu("Alarm");
JMenu help = new JMenu("Help");
public Alarm() {
super("Java Alarm Clock");
getContentPane().setBackground(new Color(204,204,255));
setLayout(new BorderLayout());
setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
setSize(770,470);
setVisible(true);
add(new pclock() , BorderLayout.WEST);
add(menuBar , BorderLayout.NORTH);
menuBar.setBackground(new Color(204,204,255));
menuBar.add(clock);
menuBar.add(alarm);
menuBar.add(help);
}
class pclock extends JPanel {
public void paintComponent(Graphics g) {
setBackground(new Color(204,204,255));
super.paintComponent(g);
g.setColor(Color.WHITE);
g.fillOval(40, 100, 180, 180);
}
}
public static void main(String[] args) {
new Alarm();
}
}
但是當我運行代碼的圈子不會出現 當我這個代碼
add(new pclock() , BorderLayout.WEST);
改變
它只會出現0add(new pclock());
那麼如何讓它像左圖那樣出現? 謝謝
你能告訴我們它目前的樣子嗎,即你看到的問題? –
'public void paintComponent(Graphics g){ setBackground(new Color(204,204,255)); super.paintComponent(g);'調用'setBackground(new Color(204,204,255));'應該在構造函數中。它只需要做一次,並且我們不應該改變paint方法中的組件的狀態,因爲這會觸發'repaint()'! –
'setVisible(true);'應該是'Alarm'構造函數中的最後一個方法調用。 –