總體包含關系(JFrame(JPanel(各種小組件)))
jPanel1.add(jl);
jf.add(jPanel1);
類具有單一職責,一般JFrame一個類,JPanel一個類
public class MyUi extends JFrame{//為JFrame設置一個單獨的類,負責相關組件組裝 }
public class MyJpanel extends JPanel{}//為JPanel設置單獨類,只負責JPanel相關設置
一、窗口
JFrame jf=new JFrame("進程調度");
設置窗口大小
jf.setSize(width, height);//設置窗口大小
this.setPreferredSize(new Dimension(width, height));//用這個方法窗口邊框會顯示不出來
設置窗口居中
Toolkit kit=Toolkit.getDefaultToolkit();//設置窗口居中 Dimension screensize=kit.getScreenSize(); jf.setLocation((screensize.width-width)/2, (screensize.height-height)/2);//width ,height為窗口的寬和高
設置窗口關閉
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//關閉 jf.setVisible(true);//設置窗口是否可見
二、布局
1.流式布局
FlowLayout f=new FlowLayout();//流式布局 jf.setLayout(f);//往窗口內添加布局
三、面板組件(JPanel)
JFrame窗口中添加JPanel控制面板組件
JPanel jPanel=new JPanel();
設置JPanel的邊框大小
myJpanel.setPreferredSize(new Dimension(200, 300));//這個能顯示 myJpanel.setSize(new Dimension(200, 300));//這個邊框會顯示不出來
四、各種小組件
1.標簽組件(JLable)
JLabel jl3=new JLabel("運行結果");
2.按鈕(JButton)
JButton jButton=new JButton("開始調度實行");
一般情況下為按鈕注冊監聽器
jButton.addActionListener(new ActionListener() { });//內部監聽器
3.文本框(JTextFile)
JTextField jTextField=new JTextField();
為文本框設計大小
jTextField.setPreferredSize(new Dimension(300, 200));
4.文本區(JTextArea)
JTextArea jTextArea=new JTextArea();
為文本區設計大小
jTextArea.setPreferredSize(new Dimension(300, 650));
為文本區或文本框添加下拉框
JScrollPane jScrollPane=new JScrollPane(jTextArea);//為文本區添加邊框
當為文本區(JTextArea)或文本框(JTextFile)設計邊框大小時,若加了滾動框,直接設計滾動框的大小即可(若加滾動框后,去設計文本框或文本區大小時,若其內容超過大小,不顯示滾動條框)
jScrollPane.setPreferredSize(new Dimension(300, 400));
5.單選按鈕(JRadioButton)
JRadioButton jr1=new JRadioButton("FCFS"); JRadioButton jr2=new JRadioButton("SJF"); JRadioButton jr3=new JRadioButton("PSA"); JRadioButton jr4=new JRadioButton("RR時間片輪轉");
判斷單選框選項是否被選中(可用在監聽器中判斷是否被選中)
jr1.isSelected()
6.多選框(JCheckBox)
JCheckBox jCheckBox1=new JCheckBox("蘋果"); JCheckBox jCheckBox2=new JCheckBox("香蕉"); JCheckBox jCheckBox3=new JCheckBox("梨子", true);//設置是否被選中
判斷是否被選中
jCheckBox1.isSelected()
可以為其添加狀態監聽器,用於監聽其狀態的改變
jCheckBox1.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { JCheckBox checkBox=(JCheckBox) e.getSource();//返回鼠標點擊對象 System.out.println(checkBox.getText()+"狀態改變!"); } });