Skip to content

Commit ecad27e

Browse files
author
vbuell
committed
obj7.ser added
1 parent 8dd27e6 commit ecad27e

File tree

4 files changed

+166
-0
lines changed

4 files changed

+166
-0
lines changed

java/src/JFrameTest.java

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
import java.awt.BorderLayout;
2+
import java.awt.Component;
3+
import java.awt.GridLayout;
4+
import java.awt.Rectangle;
5+
import java.awt.event.ActionEvent;
6+
import java.awt.event.ActionListener;
7+
import java.awt.event.MouseAdapter;
8+
import java.awt.event.MouseEvent;
9+
import java.awt.event.WindowAdapter;
10+
import java.awt.event.WindowEvent;
11+
import java.io.Serializable;
12+
13+
import javax.swing.JButton;
14+
import javax.swing.JCheckBox;
15+
import javax.swing.JFrame;
16+
import javax.swing.JList;
17+
import javax.swing.JPanel;
18+
import javax.swing.JScrollPane;
19+
import javax.swing.JTextArea;
20+
import javax.swing.ListCellRenderer;
21+
import javax.swing.ListModel;
22+
import javax.swing.ListSelectionModel;
23+
import javax.swing.UIManager;
24+
import javax.swing.border.EmptyBorder;
25+
26+
public class JFrameTest extends JFrame {
27+
28+
public JFrameTest() {
29+
super("CheckList Example");
30+
String[] strs = { "swing", "home", "basic", "metal", "JList" };
31+
32+
final JList list = new JList(createData(strs));
33+
34+
list.setCellRenderer(new CheckListRenderer());
35+
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
36+
list.setBorder(new EmptyBorder(0, 4, 0, 0));
37+
list.addMouseListener(new MouseAdapter() {
38+
public void mouseClicked(MouseEvent e) {
39+
int index = list.locationToIndex(e.getPoint());
40+
CheckableItem item = (CheckableItem) list.getModel()
41+
.getElementAt(index);
42+
item.setSelected(!item.isSelected());
43+
Rectangle rect = list.getCellBounds(index, index);
44+
list.repaint(rect);
45+
}
46+
});
47+
JScrollPane sp = new JScrollPane(list);
48+
49+
final JTextArea textArea = new JTextArea(3, 10);
50+
JScrollPane textPanel = new JScrollPane(textArea);
51+
JButton printButton = new JButton("print");
52+
printButton.addActionListener(new ActionListener() {
53+
public void actionPerformed(ActionEvent e) {
54+
ListModel model = list.getModel();
55+
int n = model.getSize();
56+
for (int i = 0; i < n; i++) {
57+
CheckableItem item = (CheckableItem) model.getElementAt(i);
58+
if (item.isSelected()) {
59+
textArea.append(item.toString());
60+
textArea.append(System.getProperty("line.separator"));
61+
}
62+
}
63+
}
64+
});
65+
JButton clearButton = new JButton("clear");
66+
clearButton.addActionListener(new ActionListener() {
67+
public void actionPerformed(ActionEvent e) {
68+
textArea.setText("");
69+
}
70+
});
71+
JPanel panel = new JPanel(new GridLayout(2, 1));
72+
panel.add(printButton);
73+
panel.add(clearButton);
74+
75+
getContentPane().add(sp, BorderLayout.CENTER);
76+
getContentPane().add(panel, BorderLayout.EAST);
77+
getContentPane().add(textPanel, BorderLayout.SOUTH);
78+
}
79+
80+
private CheckableItem[] createData(String[] strs) {
81+
int n = strs.length;
82+
CheckableItem[] items = new CheckableItem[n];
83+
for (int i = 0; i < n; i++) {
84+
items[i] = new CheckableItem(strs[i]);
85+
}
86+
return items;
87+
}
88+
89+
class CheckableItem implements Serializable {
90+
private String str;
91+
92+
private boolean isSelected;
93+
94+
public CheckableItem(String str) {
95+
this.str = str;
96+
isSelected = false;
97+
}
98+
99+
public void setSelected(boolean b) {
100+
isSelected = b;
101+
}
102+
103+
public boolean isSelected() {
104+
return isSelected;
105+
}
106+
107+
public String toString() {
108+
return str;
109+
}
110+
}
111+
112+
class CheckListRenderer extends JCheckBox implements ListCellRenderer {
113+
114+
public CheckListRenderer() {
115+
setBackground(UIManager.getColor("List.textBackground"));
116+
setForeground(UIManager.getColor("List.textForeground"));
117+
}
118+
119+
public Component getListCellRendererComponent(JList list, Object value,
120+
int index, boolean isSelected, boolean hasFocus) {
121+
setEnabled(list.isEnabled());
122+
setSelected(((CheckableItem) value).isSelected());
123+
setFont(list.getFont());
124+
setText(value.toString());
125+
return this;
126+
}
127+
}
128+
129+
public static void main(String args[]) {
130+
try {
131+
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
132+
} catch (Exception evt) {
133+
}
134+
135+
JFrameTest frame = new JFrameTest();
136+
frame.addWindowListener(new WindowAdapter() {
137+
public void windowClosing(WindowEvent e) {
138+
System.exit(0);
139+
}
140+
});
141+
frame.setSize(300, 200);
142+
frame.setVisible(true);
143+
}
144+
}

java/src/OneTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import java.awt.event.WindowAdapter;
2+
import java.awt.event.WindowEvent;
13
import java.io.ByteArrayOutputStream;
24
import java.io.FileOutputStream;
35
import java.io.IOException;
@@ -123,6 +125,20 @@ public void testClass() throws Exception {
123125
oos.flush();
124126
}
125127

128+
@Test
129+
public void testSwingObject() throws Exception {
130+
JFrameTest frame = new JFrameTest();
131+
frame.addWindowListener(new WindowAdapter() {
132+
public void windowClosing(WindowEvent e) {
133+
System.exit(0);
134+
}
135+
});
136+
frame.setSize(300, 200);
137+
frame.setVisible(true);
138+
oos.writeObject(frame);
139+
oos.flush();
140+
}
141+
126142
// public void test_readObject() throws Exception {
127143
// String s = "HelloWorld";
128144
// oos.writeObject(s);

obj7.ser

19.6 KB
Binary file not shown.

tests.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,12 @@ def test_6(self):
5555
print pobj
5656
self.assertEqual(pobj.name, 'java.lang.String')
5757

58+
def test_7(self):
59+
jobj = self.read_file("obj7.ser")
60+
pobj = javaobj.loads(jobj)
61+
print pobj
62+
self.assertEqual(pobj.name, 'java.lang.String')
63+
5864
# def test_choice(self):
5965
# element = random.choice(self.seq)
6066
# self.assertTrue(element in self.seq)

0 commit comments

Comments
 (0)