http://docs.oracle.com/javase/8/docs/api/
常用属性
this.setAlwaysOnTop(true);
this.setAutoRequestFocus(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(true);
this.setEnabled(true);
this.setSize(100,200);
this.setOpacity((float)1.0);// 当前窗体被系统修饰以后,只能opacity给1.0 this.setUndecorated(true);//当前窗体不被系统装饰, 最小化,最大化,关闭按钮都没有 //要自己添加按钮进行关闭等操作
this.setType(Type.POPUP); // this.setType(Type.NORMAL); // this.setType(Type.UTILITY); //根据type,系统修饰的方式略有不同
setVisible(true)
JPanel panel1 = new JPanel(); this.setContentPane(panel1); 要给JFrame设置一个contentPane
Container中可以放控件,或者其他容器。
常用属性
JPanel panel1 = new JPanel(); panel1.setBackground(Color.BLUE); panel1.setLayout(new FlowLayout()); //JPanel default layout ==> borderlayout panel1.setBorder(new TitledBorder("panel1"));
常用属性
JLabel lbl1 = new JLabel(); lbl1.setFont(new Font("MS Mincho", Font.BOLD, 14)); lbl1.setText("lbl1"); lbl1.setForeground(Color.BLACK); lbl1.setIcon(new ImageIcon(this.getClass().getResource("icon1.png")));
lbl1.setToolTipText("tool tip");- 文本对齐方式:
lbl1.setHorizontalAlignment(SwingConstants.CENTER); lbl1.setVerticalAlignment(SwingConstants.TOP);
常用属性
JButton btn1 = new JButton("btn1"); btn1.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { System.out.println("1"); } });
常用属性
TextField jtf1 = new JTextField(); jtf1.setEnabled(true); jtf1.setEditable(false); jtf1.setText("du text");
常用属性
JTextArea ta = new JTextArea(); ta.setRows(5); ta.setColumns(10); ta.setLineWrap(true);// default : false
把ta放在JScrollPane中的viewportview中,然后把JScrollPane放在panel中
JScrollPane scrollPane = new JScrollPane(); scrollPane.setViewportView(ta); panel1.add(scrollPane);
把rb加到buttongroup中,但是jpanel中加的是rb
JRadioButton rb1 = new JRadioButton("rb1"); rb1.setSelected(true); System.out.println(rb1.isSelected()); JRadioButton rb2 = new JRadioButton("rb2"); JRadioButton rb3 = new JRadioButton(); rb3.setText("rb3"); ButtonGroup btnGr = new ButtonGroup(); btnGr.add(rb1); btnGr.add(rb2); btnGr.add(rb3); panel1.add(rb1); panel1.add(rb2); panel1.add(rb3);
给List设置model数据
lstName = new JList<String>(); lstName.setModel(new AbstractListModel<String>() { private String[] values = new String[]{"java", "c++", "c#"}; @Override public int getSize() { return values.length; } @Override public String getElementAt(int index) { return values[index]; } });
常用方法:
lstName.getSelectedValue(); lstName.getSelectedIndex(); lstName.getSelectedIndices(); lstName.getSelectedValuesList(); lstName.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
- 如果不选择任何项,selectedIndex是-1.
- 默认selectionmode是可选多行
String[] values = new String[]{"java", "c++", "c#"}; comboCours = new JComboBox<String>(values); comboCours.addItemListener(new ItemListener() { @Override public void <span style="background-color: rgb(255, 255, 102);">itemStateChanged</span>(ItemEvent e) { System.out.println(comboCours.getSelectedItem()); } }); panel1.add(comboCours);
progressBar = new JProgressBar(); progressBar.setMinimum(0); progressBar.setMaximum(100);
用swingworker多线程控制JprogressBar:
panel1.add(progressBar); JButton btnPB = new JButton("add"); btnPB.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { new SwingWorker<String,Integer>(){ @Override protected String doInBackground() throws Exception { for (int i = 0; i <=10; i++ ) { Thread.sleep(1000);//sleep for 1s publish(i*10); } return null; } @Override protected void process(List<Integer> chunks) { for(Integer integer : chunks){ progressBar.setValue(integer); } } }.execute(); } }); panel1.add(btnPB);
model是数字:
JSpinner spinner1 = new JSpinner(); spinner1.setModel(new SpinnerNumberModel(60,0,100,1)); //int value, int minimum, int maximum, int stepSize //double, double,double,double panel1.add(spinner1); int num = Integer.parseInt(spinner1.getValue().toString()); System.out.println(num);
model是日期:
JSpinner spinner2 = new JSpinner(); spinner2.setModel(new SpinnerDateModel()); panel1.add(spinner2);