日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了可以將FormLayout放入GridLayout中嗎?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我嘗試將FormLayout組合放入GridLayout網格,但遇到異常。我是不是做錯了什么,或者這根本不可能?以下是我的代碼:

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class formlayout {
    public static void main(String[] args)
    {
        Display display = new Display();
        Shell shell = new Shell(display);
        GridLayout layout= new GridLayout(1, false);
        shell.setLayout(layout);

        Composite inputs = new Composite(shell, SWT.NONE);
        inputs.setLayout(new FormLayout());
        FormData fd1 = new FormData();
        fd1.left = new FormAttachment(0, 0);
        fd1.right = new FormAttachment(100,0);
        inputs.setLayoutData(fd1);

        Button button1 = new Button(shell, SWT.PUSH);
        button1.setText("B1");
        button1.setLayoutData(new FormData());
        FormData formData = new FormData();
        formData.left = new FormAttachment(20,0);
        formData.right = new FormAttachment(100,0);
        button1.setLayoutData(formData);

        Button button2 = new Button(shell, SWT.PUSH);
        button2.setText("B2");
        button2.setLayoutData(new FormData());
        FormData formData2 = new FormData();
        formData2.left = new FormAttachment(0,0);
        formData2.right = new FormAttachment(20,0);
        button2.setLayoutData(formData2);    

        shell.open();
        while (!shell.isDisposed()) {
          if (!display.readAndDispatch()) {
            display.sleep();
          }
        }
        display.dispose();
    }
} 

我得到的異常是:

Exception in thread "main" java.lang.ClassCastException: org.eclipse.swt.layout.FormData cannot be cast to org.eclipse.swt.layout.GridData

當然,這只是一個演示問題的示例腳本。實際上,外殼在代碼中的定義較低,并且它被設置為GridLayout,所以我無法真正改變這一點,但我仍然需要使用FormLayout通過按鈕來實現我的目標。

推薦答案

在此代碼中:

Composite inputs = new Composite(shell, SWT.NONE);
inputs.setLayout(new FormLayout());
FormData fd1 = new FormData();
fd1.left = new FormAttachment(0, 0);
fd1.right = new FormAttachment(100,0);
inputs.setLayoutData(fd1);

您正在inputs的布局數據中設置FormData。布局數據由為控件的父級指定的布局使用-在本例中,父級是使用GridLayoutshell。

因此,當shell的網格布局正在進行布局時,它希望其所有子對象在布局數據中都有GridData,但您有FormData,因此它正在執行的強制轉換失敗。

inputs的布局數據指定GridData,inputs的子控件只使用FormData。

這篇關于可以將FormLayout放入GridLayout中嗎?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:FormLayout GridLayout 放入
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定