Suggested case list:
Using timer to refresh a grid
383guest172.69.33.12125nk0uiMay 7, 2020 7:23:47 AMlinkuser model to move item to another listbox
120guest162.158.193.148d0n3krApr 2, 2020 5:28:28 AMlinkDisabled list item row passed to VM-1981
296fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:44 PMlinkDisabled list item row passed to VM-1981
295fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:16 PMlinkDisabled list item row passed to VM-1981
294fatih123160.83.36.13225nk0uiFeb 13, 2018 3:30:44 PMlinkgrid sample with ListModel/RowRenderer
816guest80.82.2.1312vah9ajFeb 21, 2017 11:42:21 AMlinkgrid sample with ListModel/RowRenderer
809guest175.98.113.1622vah9ajJan 26, 2017 9:19:33 AMlinkgrid sample with ListModel/RowRenderer
196guest79.185.142.402vah9ajApr 26, 2014 10:53:57 PMlinkgrid sample with ListModel/RowRenderer
195guest79.185.142.402vah9ajApr 26, 2014 10:53:54 PMlinkgrid sample with ListModel/RowRenderer
194guest79.185.142.402vah9ajApr 26, 2014 10:53:51 PMlinkgrid sample with ListModel/RowRenderer
193guest79.185.142.402vah9ajApr 26, 2014 10:53:48 PMlinkgrid sample with ListModel/RowRenderer
192guest79.185.142.402vah9ajApr 26, 2014 10:53:44 PMlinkgrid sample with ListModel/RowRenderer
191guest79.185.142.402vah9ajApr 26, 2014 10:53:40 PMlinkHierarchy table without using ZK PE/EE
1aaknai151.28.135.2131s871daJul 29, 2013 11:02:46 PMlinkgrid sample with ListModel/RowRenderer
128aaknai151.28.135.2132vah9ajJul 29, 2013 7:20:00 PMlinkuser model to move item to another listbox
1TonyQ114.25.109.94d0n3krApr 21, 2012 10:43:27 AMlinkUsing timer to refresh a grid
1TonyQ220.133.44.3725nk0uiFeb 17, 2012 3:17:34 AMlinkFire a event from child iframe
1TonyQ220.133.44.372eupjotFeb 3, 2012 5:04:52 AMlinkTextbox input restriction sample
1TonyQ72.21.245.2431b3nlr0Dec 20, 2011 10:09:10 AMlinkTest web core taglib in ZUL
1TonyQ198.203.175.175ofqkemDec 17, 2011 3:36:08 AMlinkLatest 10 Fiddles :
constraint binding textbox
3guest172.68.151.16220peldaDec 5, 2025 5:08:19 PMlinkAnother new ZK fiddle
2guest172.68.151.16320peldaDec 5, 2025 5:07:51 PMlinkAnother new ZK fiddle
1guest172.68.151.16220peldaDec 5, 2025 5:07:32 PMlinkAnother new ZK fiddle
1peggypeng172.71.154.99364f4neDec 5, 2025 9:24:31 AMlinktooltip example
2guest104.22.23.13rc1ntoDec 4, 2025 2:23:45 PMlinkAnother new ZK fiddle
1guest172.69.134.2277t7602Dec 4, 2025 1:40:46 PMlinkAnother new ZK fiddle
1peggypeng104.22.17.1802df6e3oDec 4, 2025 8:41:29 AMlinkonClose
1peggypeng172.68.87.248j8kd8aDec 3, 2025 4:10:26 AMlinkAnother new ZK fiddle
1peggypeng172.69.134.2271rm7f4eNov 26, 2025 3:31:24 AMlinkZK-5912-Suggestion
2rebeccalai104.22.20.1442qrmiiuNov 26, 2025 2:07:15 AMlinkChart does not work vflex
5guest178.169.93.1332c3jt57Nov 24, 2014 8:42:00 PMlinkresources
index.zulzul<zk>
<vbox width="100%">
<grid vflex="1">
<columns>
<column label="category" width="150px" />
<column label="value" />
</columns>
<rows>
<row>
<label id="c0" value="C/C++" />
<doublebox id="v0" value="21.2" constraint="no empty"
onChange="update(0)" />
</row>
<row>
<label id="c1" value="VB" />
<doublebox id="v1" value="10.2" constraint="no empty"
onChange="update(1)" />
</row>
<row>
<label id="c2" value="Java" />
<doublebox id="v2" value="40.4" constraint="no empty"
onChange="update(2)" />
</row>
<row>
<label id="c3" value="PHP" />
<doublebox id="v3" value="28.2" constraint="no empty"
onChange="update(3)" />
</row>
</rows>
</grid>
<checkbox label="3D Chart" checked="true"
onCheck="mychart.setThreeD(self.isChecked())" />
<chart id="mychart" title="Pie Chart Demo" vflex="1"
type="pie" threeD="true" fgAlpha="128">
<attribute name="onClick">
Area area = event.getAreaComponent();
if (area != null) {
alert(""+area.getAttribute("entity")+": "+area.getTooltiptext());
}
</attribute>
<zscript>
void update(int rowIndex) {
Label lb = (Label) self.getFellow("c"+rowIndex);
Doublebox db = (Doublebox) self.getFellow("v"+rowIndex);
model.setValue(lb.value, new Double(db.getValue().doubleValue()));
}
PieModel model = new SimplePieModel();
for(int j=0; j < 4; ++j) {
update(j);
}
mychart.setModel(model);
</zscript>
</chart>
<toolbarbutton label="See More chart..." href="/data/morechart.zul" target="zksandbox"/>
</vbox>
</zk>
CtrIndex.javajava
import java.util.Random;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.Button;
import org.zkoss.zul.Chart;
import org.zkoss.zul.Label;
import org.zkoss.zul.Textbox;
public class CtrIndex extends SelectorComposer<Component>{
@Wire
Textbox tbM11;
@Wire
Textbox tbM12;
@Wire
Textbox tbD11;
@Wire
Textbox tbD12;
@Wire
Textbox tbM21;
@Wire
Textbox tbM22;
@Wire
Textbox tbD21;
@Wire
Textbox tbD22;
@Wire
Label leM11;
@Wire
Label leM12;
@Wire
Label leD11;
@Wire
Label leD12;
@Wire
Label lN1;
@Wire
Label leP1;
@Wire
Label lePE1;
@Wire
Label lePE;
@Wire
Label leM21;
@Wire
Label leM22;
@Wire
Label leD21;
@Wire
Label leD22;
@Wire
Label lN2;
@Wire
Label leP2;
@Wire
Label lePE2;
@Wire
Textbox tbP1;
@Wire
Textbox tbN;
@Wire
Textbox tbK;
@Wire
Label lP2;
@Wire
Button btnCalc;
@Wire
Chart chart;
@Wire
Button chart1;
@Wire
Button chart2;
@Wire
Button chart3;
@Wire
Button chart4;
Random rnd = new Random();
Integer n1, n2, N, K;
Double m11, m12, m21, m22, d11, d12, d21, d22, P1, P2;
Double e_m11, e_m12, e_m21, e_m22, e_d11, e_d12, e_d21, e_d22, e_p1, e_p2, e_p1_err, e_p2_err, e_p_err;
double[] x1;
double[] y1;
double[] x2;
double[] y2;
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
btnCalc.setVisible(true);
btnCalc.setLabel("Вычилить");
chart1.setVisible(true);
chart1.setLabel("Pош(N)");
chart2.setVisible(true);
chart2.setLabel("Pош(D11-D21)");
chart3.setVisible(true);
chart3.setLabel("Pош(P1)");
chart4.setVisible(true);
chart4.setLabel("Pош(m21-m11)");
setConstParameters();
}
public void setConstParameters(){
tbM11.setValue("10");
tbM12.setValue("10");
tbD11.setValue("2");
tbD12.setValue("2");
tbM21.setValue("15");
tbM22.setValue("15");
tbD21.setValue("3");
tbD22.setValue("3");
tbP1.setValue("0.5");
tbN.setValue("500");
double forLp2 = 1 - Double.parseDouble(tbP1.getValue());
lP2.setValue(String.valueOf(forLp2));
tbK.setValue("96");
}
public void getData(){
N = Integer.parseInt(tbN.getValue());
P1 = Double.parseDouble(tbP1.getValue());
P2 = Double.parseDouble(lP2.getValue());
K = Integer.parseInt(tbK.getValue());
m11 = Double.parseDouble(tbM11.getValue());
m12 = Double.parseDouble(tbM12.getValue());
m21 = Double.parseDouble(tbM21.getValue());
m22 = Double.parseDouble(tbM22.getValue());
d11 = Double.parseDouble(tbD11.getValue());
d12 = Double.parseDouble(tbD12.getValue());
d21 = Double.parseDouble(tbD21.getValue());
d22 = Double.parseDouble(tbD22.getValue());
}
public void setParameters(){
N = Integer.parseInt(tbN.getValue());
K = Integer.parseInt(tbK.getValue());
m11 = Double.parseDouble(tbM11.getValue());
m12 = Double.parseDouble(tbM12.getValue());
m21 = Double.parseDouble(tbM21.getValue());
m22 = Double.parseDouble(tbM22.getValue());
d11 = Double.parseDouble(tbD11.getValue());
d12 = Double.parseDouble(tbD12.getValue());
d21 = Double.parseDouble(tbD21.getValue());
d22 = Double.parseDouble(tbD22.getValue());
P1 = Double.parseDouble(tbP1.getValue());
P2 = Double.parseDouble(lP2.getValue());
}
public void randomSample(){
n1 = 0;
n2 = 0;
for(int i = 0; i < N; ++i){
if(rnd.nextDouble() < P1){
n1++;
}else{
n2++;
}
}
}
/***
*
* @param m = мат ожидание
* @param d = дисперсия
* @return temp = информационный признак, распределенный по нормальному закону распределения.
*/
public double normalDistribution(double m, double d){
double temp = 0;
double x = 0;
for(int i = 0; i <= K; ++i){
x = x + (rnd.nextDouble() - 0.5);
}
temp = Math.sqrt(12*d/K)*x + m;
return temp;
}
/***
* @return estimate varience = оценка дисперсии
*/
public double estimate_V(double[] x, int n , double m){
double e_v = 0;
for(int i = 0; i < n; ++i){
e_v = e_v + Math.pow((x[i]-m), 2);
}
e_v = e_v/(n-1);
return e_v;
}
/***
*
* @return estimate_e = оценку мат ожидании
*/
public double estimate_E(double[] x, int n){
double e_e = 0;
for(int i = 0; i < n; ++i){
e_e = e_e + x[i];
}
e_e = e_e/n;
return e_e;
}
/***
*
* @return количество ошибок классификатора
*/
public Integer probabilityOfError(int size, int id, double [] arr1, double[] arr2, double em11, double em12, double em21, double em22, double ed11,
double ed12, double ed21, double ed22, double ep1, double ep2){
Integer n_error = 0;
double nu = 0, f1 = 0, f2 = 0;
for(int i = 0; i < size; ++i){
f1 = ep1/(2*Math.PI*Math.sqrt(ed11*ed12)*Math.exp(-0.5*(Math.pow((arr1[i]-em11), 2)/ed11 + Math.pow((arr2[i]-em12), 2)/ed12)));
f2 = ep2/(2*Math.PI*Math.sqrt(ed21*ed22)*Math.exp(-0.5*(Math.pow((arr1[i]-em21), 2)/ed21 + Math.pow((arr2[i]-em22), 2)/ed22)));
nu = f1 - f2;
if(id==1&&nu>0){
n_error++;
}
if(id==2&&nu<0){
n_error++;
}
}
System.out.println("n_error" + n_error);
return n_error;
}
@Listen("onClick = #btnCalc")
public void calc(){
setParameters();
randomSample();
x1 = new double[n1];
x2 = new double[n1];
y1 = new double[n2];
y2 = new double[n2];
for(int i = 0; i < n1; ++i){
x1[i] = normalDistribution(m11, d11);
x2[i] = normalDistribution(m12, d12);
}
for(int i = 0; i < n2; ++i){
y1[i] = normalDistribution(m21, d21);
y2[i] = normalDistribution(m22, d22);
}
lN1.setValue(String.valueOf(n1));
lN2.setValue(String.valueOf(n2));
e_p1 = (double)n1/(double)N;
e_p2 = (double)n2/(double)N;
leP1.setValue(String.valueOf(e_p1));
leP2.setValue(String.valueOf(e_p2));
e_m11 = estimate_E(x1, n1);
e_m12 = estimate_E(x2, n1);
e_m21 = estimate_E(y1, n2);
e_m22 = estimate_E(y2, n2);
leM11.setValue(String.valueOf(String.format("%.2f", e_m11)));
leM12.setValue(String.valueOf(String.format("%.2f", e_m12)));
leM21.setValue(String.valueOf(String.format("%.2f", e_m21)));
leM22.setValue(String.valueOf(String.format("%.2f", e_m22)));
e_d11 = estimate_V(x1, n1, estimate_E(x1, n1));
e_d12 = estimate_V(x2, n1, estimate_E(x2, n1));
e_d21 = estimate_V(y1, n2, estimate_E(y1, n2));
e_d22 = estimate_V(y2, n2, estimate_E(y2, n2));
leD11.setValue(String.valueOf(String.format("%.2f", e_d11)));
leD12.setValue(String.valueOf(String.format("%.2f", e_d12)));
leD21.setValue(String.valueOf(String.format("%.2f", e_d21)));
leD22.setValue(String.valueOf(String.format("%.2f", e_d22)));
e_p1_err = (double)probabilityOfError(n1, 1, x1, x2, e_m11, e_m12, e_m21, e_m22, e_d11, e_d12, e_d21, e_d22, e_p1, e_p2)/(double)n1;
e_p2_err = (double)probabilityOfError(n2, 2, y1, y2, e_m11, e_m12, e_m21, e_m22, e_d11, e_d12, e_d21, e_d22, e_p1, e_p2)/(double)n2;
e_p_err = e_p1_err + e_p2_err;
lePE1.setValue(String.valueOf(String.format("%.2f", e_p1_err)));
lePE2.setValue(String.valueOf(String.format("%.2f", e_p2_err)));
lePE.setValue(String.valueOf(String.format("%.2f", e_p_err)));
}
}