1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
|
package swingawt;
import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Panel;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
/**
*
* @author Fabrice Bouyé (fabriceb@spc.int)
*/
public class Main extends JPanel {
public enum Variant {
SWING,
AWT;
}
public Main(Variant variant) {
setLayout(null);
switch (variant) {
case AWT: {
for (int j = 0; j < 20; j++) {
JPanel jPanel1 = new JPanel();
jPanel1.setBounds(30, j * 40, 100, 20);
jPanel1.setBackground(Color.GREEN);
add(jPanel1);
}
Panel canvas1 = new Panel();
Canvas canvas2 = new Canvas();
canvas1.setBounds(20, 20, 40, 500);
canvas2.setBounds(90, 20, 40, 500);
canvas1.setBackground(Color.BLUE);
canvas2.setBackground(Color.RED);
add(canvas1);
add(canvas2);
for (int j = 0; j < 20; j++) {
JPanel jPanel1 = new JPanel();
jPanel1.setBounds(30, 20+j * 40, 100, 20);
jPanel1.setBackground(Color.PINK);
add(jPanel1);
}
canvas1.setLayout(null);
JPanel jPanel2 = new JPanel();
jPanel2.setBounds(10, 10, 10, 10);
jPanel2.setBackground(Color.YELLOW);
canvas1.add(jPanel2);
}
break;
case SWING:
default: {
for (int j = 0; j < 20; j++) {
JPanel jPanel1 = new JPanel();
jPanel1.setBounds(30, j * 40, 100, 20);
jPanel1.setBackground(Color.GREEN);
add(jPanel1);
}
JPanel canvas1 = new JPanel();
JPanel canvas2 = new JPanel();
canvas1.setBounds(20, 20, 40, 500);
canvas2.setBounds(90, 20, 40, 500);
canvas1.setBackground(Color.BLUE);
canvas2.setBackground(Color.RED);
add(canvas1);
add(canvas2);
for (int j = 0; j < 20; j++) {
JPanel jPanel1 = new JPanel();
jPanel1.setBounds(30, 20+j * 40, 100, 20);
jPanel1.setBackground(Color.PINK);
add(jPanel1);
}
canvas1.setLayout(null);
JPanel jPanel2 = new JPanel();
jPanel2.setBounds(10, 10, 10, 10);
jPanel2.setBackground(Color.YELLOW);
canvas1.add(jPanel2);
}
}
}
/**
* {@inheritDoc}
*/
@Override
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D)g;
g2d.setStroke(new BasicStroke(8f));
g2d.setColor(new Color(0,0,0,127));
for (int j = 0; j < 40; j++) {
g2d.drawLine(0, j*20, 180, j*20);
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
System.out.printf("Java: %s", System.getProperty("java.version")).println();
System.out.printf("AWT mixing: %s", System.getProperty("sun.awt.disableMixing")).println();
// Ca ne change rien !!!!
//System.setProperty("sun.awt.disableMixing", "false");
//System.setProperty("sun.awt.disableMixing", "true");
//System.out.printf("AWT mixing: %s", System.getProperty("sun.awt.disableMixing")).println();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
for (Variant variant : Variant.values()) {
JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(new Main(variant), BorderLayout.CENTER);
JMenuBar menuBar = new JMenuBar();
JMenuItem variantMenu = new JMenuItem(variant.toString());
menuBar.add(variantMenu);
for (int j = 0; j < 10; j++) {
JMenu menu = new JMenu("Menu " + (j + 1));
for (int i = 0; i < 5; i++) {
JMenuItem menuItem = new JMenuItem("Menu item " + (i + 1));
menu.add(menuItem);
}
menuBar.add(menu);
}
frame.setJMenuBar(menuBar);
frame.setSize(600, 600);
frame.setVisible(true);
}
}
});
}
} |
Partager