JTable . , : , , , . . JTable , . , .
/* # 18: : JTableDemo.java */
package chapt13;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
public class JTableDemo extends JFrame {
static ArrayList<Object[]> list =
new ArrayList<Object[]>();
JTable table;
DataModel dataModel = new DataModel();
JTableDemo() {
dataModel.addRow("", 5);
dataModel.addRow("", 2);
table = new JTable(dataModel);
getContentPane().add(new JScrollPane(table));
JButton insertBtn = new JButton(" ");
insertBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
dataModel.addRow("", 0);
}
});
getContentPane().add(insertBtn, BorderLayout.SOUTH);
}
public static void main(String[] args) {
JTableDemo frame = new JTableDemo();
frame.setBounds(100, 100, 300, 300);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class DataModel extends AbstractTableModel {
private final String[] HEADERS =
{"", ""};
private final int COLS = 2;
private int rows = 0;
public String getColumnName(int col) {
return HEADERS[col];
}
public int getRowCount() {
return rows;
}
public int getColumnCount() {
return COLS;
}
public Object getValueAt(int row, int col) {
return JTableDemo.list.get(row)[col];
}
public void setValueAt(Object val, int row, int col) {
if (col == 1){
int mark = new Integer(val.toString());
if (mark > 10 || mark < 0){
JOptionPane.showMessageDialog(null, " 0 10", " !", JOptionPane.ERROR_MESSAGE);
return;
}
}
JTableDemo.list.get(row)[col] = val.toString();
fireTableDataChanged(); //
}
public boolean isCellEditable(int row, int col) {
return true;
}
public void addRow(String name, int mark) {
JTableDemo.list.add(new String[COLS]);
setValueAt(name, rows, 0);
setValueAt(mark, rows, 1);
rows++;
}
public Class getColumnClass(int col) {
switch (col) {
case 0: return String. class;
case 1: return Integer. class;
}
return null;
}
}
. 13.21. JTable
, , , .
|
|
JSplitPane , , . , .
JSplitPane. , .
/* # 19: : DemJSplit.java */
package chapt13;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class DemoJSplit extends JFrame {
private JSplitPane tabs;
private JTextArea area;
private JPanel tab;
public DemoJSplit() {
tabs = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
area =
new JTextArea(" ");
//
tabs.setTopComponent(area);
tab = new JPanel();
tab.add(new JTextField(" "));
//
tabs.setBottomComponent(tab);
tabs.setDividerLocation(130);
setContentPane(tabs); // tabs
}
public static void main(String[] args) {
DemoJSplit dspl = new DemoJSplit();
dspl.setBounds(200, 200, 250, 200);
dspl.setVisible(true);
}
}
. 13.22. JSplitPane
JTabbedPane ,
. , , .
,
.
/* # 20: : DemJTabbed.java */
package chapt13;
import java.awt.Container;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JToggleButton;
public class DemoJTabbed extends JFrame {
JTabbedPane tabs;
JPanel pan1, pan2;
public DemoJTabbed() {
Container c = getContentPane();
tabs = new JTabbedPane();
pan1 = new JPanel();
pan1.add(new JToggleButton("Button"));
tabs.addTab("One", pan1); //
pan2 = new JPanel();
pan2.add(new JCheckBox("CheckBox"));
tabs.addTab("Two", pan2); //
c.add(tabs);
}
public static void main(String[] args) {
DemoJTabbed dt = new DemoJTabbed();
dt.setSize(250, 150);
dt.setLocation(200, 200);
dt.setVisible(true);
}
}
. 13.23.
Java 6 Windows . java.awt.SystemTray : , Windows.
/* # 21: SystemTray: DemTray.java */
package chapt13;
import java.awt.*;
public class DemoTray {
public static void main(String[] args) {
if (SystemTray. isSupported ()) {
SystemTray tray = SystemTray. getSystemTray ();
|
|
Image image =
Toolkit. getDefaultToolkit ().getImage("icon");
TrayIcon icon = new TrayIcon(image, "Demo Tray");
try {
tray.add(icon);
} catch (AWTException e) {
System. err. println(e);
}
} else {
System. err. println("Without system tray!");
}
}
}
java.awt.Desktop
:
/* # 22: : DesktopTest.java */
package chapt13;
import org.jdesktop.jdic.desktop.*;
import java.net.*;
public class DesktopTest {
public static void main(String[] args) throws Exception {
Desktop.browse(new URL("http://java.sun.com"));
}
}
- :
/* # 23: web- : BrowserTest.java */
package chapt13;
import org.jdesktop.jdic.browser.WebBrowser;
import java.net.URL;
import javax.swing.JFrame;
public class BrowserTest {
public static void main(String[] args) throws Exception {
WebBrowser browser = new WebBrowser();
browser.setURL(new URL("http://www.netbeans.org"));
JFrame frame = new JFrame(" Browser");
frame.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);
frame.getContentPane().add(browser);
frame.pack();
frame.setSize(640,480);
frame.setVisible(true);
}
}
JavaBeans
Java, . . , . , , , . .
JavaBeans () , . . , .
:
, , ;
(events);
(properties);
(persistence).
. , . . .
(properties), , . private protected , get () set () (getters setters), . , name String ,
//
private String name;
// get-
public String getName(){
return name;
}
// set-
public void setString(String name){
this. name = name;
}
, , JLabel. -, JLabel Serializable, -, public JLabel() , -, , public String getText(), public void setText(String text). , , JLabel , text. . , JLabel .
|
|
boolean get - is -. , JLabel boolean - enabled, Component.