Merci SheikYerbouti pour le lien du tuto First_Bean, cela me permet de comprendre de mieux en mieux les JavaBean.
J'ai décidé de me lancer en faisant une JavaBean pour JFreechart et à l'exécution rien ne s'affiche. Alors si tu peux jeter un coup d'oeil sur mon code pr m'aider à trouver ce qui ne va pas.
Code trouvé sur le net qui marche après test et à partir duquel je m'inspire
Mon Java Bean pour encapsuler Jfreechart dans Oracle Forms 10g:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 /** * @(#)PieChartExample.java * * * @author * @version 1.00 2009/12/18 */ // Import the Swing classes import java.awt.*; import java.awt.event.*; import javax.swing.*; // Import the JFreeChart classes import org.jfree.chart.*; import org.jfree.chart.plot.*; import org.jfree.data.*; import org.jfree.data.general.*; public class PieChartExample extends JPanel { // Holds the data private DefaultPieDataset dataset = new DefaultPieDataset(); // Create a set of charts private JFreeChart chart1; private JFreeChart chart2; private JFreeChart chart3; private JFreeChart chart4; // Create a set of panels that can show charts private ChartPanel panel1; private ChartPanel panel2; private ChartPanel panel3; private ChartPanel panel4; public PieChartExample() { // Initialize the dataset dataset.setValue( "California", new Double( 10.0 ) ); dataset.setValue( "Arizona", new Double( 8.0 ) ); dataset.setValue( "New Mexico", new Double( 8.0 ) ); dataset.setValue( "Texas", new Double( 40.0 ) ); dataset.setValue( "Louisiana", new Double( 8.0 ) ); dataset.setValue( "Mississippi", new Double( 4.0 ) ); dataset.setValue( "Alabama", new Double( 2.0 ) ); dataset.setValue( "Florida", new Double( 20.0 ) ); // Create the charts chart1 = ChartFactory.createPieChart( "Driving Time Spent Per State (Flat Pie Chart)", // The chart title dataset, // The dataset for the chart true, // Is a legend required? true, // Use tooltips false // Configure chart to generate URLs? ); chart2 = ChartFactory.createPieChart( "Driving Time Spent Per State (Exploded Pie Chart)", // The chart title dataset, // The dataset for the chart true, // Is a legend required? true, // Use tooltips false // Configure chart to generate URLs? ); PiePlot plot = ( PiePlot )chart2.getPlot(); plot.setExplodePercent( 3, 0.25 ); chart3 = ChartFactory.createPieChart3D( "Driving Time Spent Per State (3D Pie Chart)", // The chart title dataset, // The dataset for the chart true, // Is a legend required? true, // Use tooltips false // Configure chart to generate URLs? ); chart4 = ChartFactory.createPieChart3D( "Driving Time Spent Per State (3D with Transparency)", // The chart title dataset, // The dataset for the chart true, // Is a legend required? true, // Use tooltips false // Configure chart to generate URLs? ); PiePlot3D plot4 = ( PiePlot3D )chart4.getPlot(); plot4.setForegroundAlpha( 0.6f ); // Create this panel this.setLayout( new GridLayout( 2, 2 ) ); this.panel1 = new ChartPanel( chart1 ); this.panel2 = new ChartPanel( chart2 ); this.panel3 = new ChartPanel( chart3 ); this.panel4 = new ChartPanel( chart4 ); this.add( panel1 ); this.add( panel2 ); this.add( panel3 ); this.add( panel4 ); } public static void main( String[] args ) { JFrame frame = new JFrame( "My Trip Driving From CA to FL..." ); PieChartExample chart = new PieChartExample(); frame.getContentPane().add( chart, BorderLayout.CENTER ); frame.setSize( 640, 480 ); frame.setVisible( true ); frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); } }
et dans le bouton de ma forms 10 g qui une copie de celle de Fisrt_Bean que j'ai modifié
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156 package oracle.forms.fjc; import com.sun.org.apache.xml.internal.security.Init; import java.awt.Color; import java.util.StringTokenizer; import javax.swing.BorderFactory; import javax.swing.SwingUtilities; import javax.swing.UIManager; import oracle.forms.handler.IHandler; import oracle.forms.ui.CustomEvent; import oracle.forms.properties.ID; import oracle.forms.ui.VBean; import oracle.forms.engine.Main; import oracle.forms.engine.*; import oracle.forms.handler.*; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.data.general.DefaultPieDataset; public class Jfreechart extends VBean{ public final static ID SHOWPIECHART = ID.registerProperty("SHOW_PIECHART"); public final static ID SETDATASETVALUE = ID.registerProperty("SET_DATASET_VALUE"); static IHandler mHandler; private ChartPanel panel = null ; private JFreeChart chart; // Holds the data private DefaultPieDataset dataset = null; private boolean bLog = false ; private Color cDefaultColor ; // default constructor public Jfreechart() { super(); } public void init(IHandler handler){ super.init(handler); mHandler = handler; // put your initialisation instructions here try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); SwingUtilities.updateComponentTreeUI(this); } catch (Exception ex){ ex.printStackTrace(); } // create the panel panel = new ChartPanel(null); panel.setSize(this.getWidth(),this.getHeight()) ; panel.setVisible(true); panel.setBorder(BorderFactory.createEmptyBorder()); } /** * Set the properties to the bean **/ public boolean setProperty(ID property, Object value){ if(property == ID.VISIBLE && cDefaultColor == null){ cDefaultColor = this.getParent().getBackground() ; } if(property == SETDATASETVALUE){ String libelle = null; double val = 0.0; String sValue = value.toString(); String sProp=""; StringTokenizer st = new StringTokenizer(sValue,","); if(sValue != null) { int x = sValue.indexOf(","); // coordinates given ? if(x != -1){ try { libelle = sValue.substring(0,x); val = Double.parseDouble(sValue.substring(x+1,sValue.length())); } catch(Exception e) {;} } } if (dataset == null) dataset = new DefaultPieDataset(); dataset.setValue(libelle, new Double( val ) ); System.out.println("SET_DATASET_VALUE =" + libelle + " " + val) ; return true; } else if (property == SHOWPIECHART){ // Create the charts /*if (dataset != null){ chart = ChartFactory.createPieChart( "Driving Time Spent Per State (Flat Pie Chart)", // The chart title dataset, // The dataset for the chart true, // Is a legend required? true, // Use tooltips false // Configure chart to generate URLs? ); if (panel == null) panel = new ChartPanel( chart ); else { panel.removeAll(); panel.setChart(chart); } panel.repaint(); panel.setOpaque(true); panel.setVisible(true); } else {*/ dataset = new DefaultPieDataset(); dataset.setValue( "California", new Double( 10.0 ) ); dataset.setValue( "Arizona", new Double( 8.0 ) ); dataset.setValue( "New Mexico", new Double( 8.0 ) ); dataset.setValue( "Texas", new Double( 40.0 ) ); dataset.setValue( "Louisiana", new Double( 8.0 ) ); dataset.setValue( "Mississippi", new Double( 4.0 ) ); dataset.setValue( "Alabama", new Double( 2.0 ) ); dataset.setValue( "Florida", new Double( 20.0 ) ); chart = ChartFactory.createPieChart( "Driving Time Spent Per State (Flat Pie Chart)", // The chart title dataset, // The dataset for the chart true, // Is a legend required? true, // Use tooltips false // Configure chart to generate URLs? ); if (panel == null) panel = new ChartPanel( chart ); else { panel.removeAll(); panel.setChart(chart); } panel.repaint(); panel.setOpaque(true); panel.setVisible(true); //} return true; } else { // default behaviour return super.setProperty(property, value); } } /** * Get the properties of the bean **/ public Object getProperty(ID property){ return super.getProperty(property); } }
Merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set_Custom_Property( 'BL.BEAN_AREA', 1, 'SHOW_PIECHART','true') ;
Partager