⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.java

📁 Simple SWT for java newbie. good example for you
💻 JAVA
字号:
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Dialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;


public class Main extends Shell {

	private Text hargaText;
	private Text jumlahText;
	private Text namaText;
	private Text kodeText;
	private Table table;
	private List<Item> allItems;
	private DBUtil dbUtil;
	private MessageBox mb;
	/**
	 * Launch the application
	 * @param args
	 */
	public static void main(String args[]) {
		try {
			Display display = Display.getDefault();
			Main shell = new Main(display, SWT.SHELL_TRIM);
			shell.open();
			shell.layout();
			while (!shell.isDisposed()) {
				if (!display.readAndDispatch())
					display.sleep();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Create the shell
	 * @param display
	 * @param style
	 */
	public Main(Display display, int style) {
		super(display, style);
		createContents();
		setLayout(new GridLayout());
	}
	
	@Override
	public void open() {
		super.open();
		init();
	}

	private void init() {
		dbUtil = new DBUtil();
		LoginDialog dialog = new LoginDialog(this, dbUtil);
		dialog.open();
		
		try {
			PreparedStatement statement = dbUtil.getConnection().prepareStatement("select kode, nama, jumlah, harga from item");
			ResultSet rs = statement.executeQuery();
			allItems = new ArrayList<Item>();
			while (rs.next()) {
				Item item = new Item(rs.getInt("kode"), rs.getString("nama"), rs.getInt("jumlah"),rs.getInt("harga"));
				allItems.add(item);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		refreshTable();
	}

	private void refreshTable() {
		table.removeAll();
		for (Item item : allItems) {
			new TableItem(table, SWT.NONE).setText(
					new String[]{
							String.valueOf(item.getKode()), 
							item.getNama(), 
							String.valueOf(item.getJumlah()), 
							String.valueOf(item.getHarga())
					}
			);
		}
	}

	/**
	 * Create contents of the window
	 */
	protected void createContents() {
		setText("Main");
		setSize(500, 375);

		final Group group = new Group(this, SWT.NONE);
		group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
		group.setLayout(new GridLayout());

		table = new Table(group, SWT.FULL_SELECTION | SWT.BORDER);
		table.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				showDetail();
			}
		});
		table.setLinesVisible(true);
		table.setHeaderVisible(true);
		table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

		final TableColumn newColumnTableColumn = new TableColumn(table, SWT.NONE);
		newColumnTableColumn.setWidth(77);
		newColumnTableColumn.setText("Kode Barang");

		final TableColumn newColumnTableColumn_1 = new TableColumn(table, SWT.NONE);
		newColumnTableColumn_1.setWidth(181);
		newColumnTableColumn_1.setText("Nama Barang");

		final TableColumn newColumnTableColumn_2 = new TableColumn(table, SWT.NONE);
		newColumnTableColumn_2.setWidth(100);
		newColumnTableColumn_2.setText("Jumlah");

		final TableColumn newColumnTableColumn_3 = new TableColumn(table, SWT.NONE);
		newColumnTableColumn_3.setWidth(100);
		newColumnTableColumn_3.setText("Harga");

		final Group group_1 = new Group(this, SWT.NONE);
		group_1.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
		final GridLayout gridLayout = new GridLayout();
		gridLayout.numColumns = 2;
		group_1.setLayout(gridLayout);

		final Label kodeBarangLabel = new Label(group_1, SWT.NONE);
		kodeBarangLabel.setText("Kode Barang");

		kodeText = new Text(group_1, SWT.BORDER);
		final GridData gd_kodeText = new GridData(SWT.FILL, SWT.CENTER, true, false);
		kodeText.setLayoutData(gd_kodeText);

		final Label namaBarangLabel = new Label(group_1, SWT.NONE);
		namaBarangLabel.setText("Nama Barang");

		namaText = new Text(group_1, SWT.BORDER);
		final GridData gd_namaText = new GridData(SWT.FILL, SWT.CENTER, true, false);
		namaText.setLayoutData(gd_namaText);

		final Label jumlahLabel = new Label(group_1, SWT.NONE);
		final GridData gd_jumlahLabel = new GridData();
		jumlahLabel.setLayoutData(gd_jumlahLabel);
		jumlahLabel.setText("Jumlah");

		jumlahText = new Text(group_1, SWT.BORDER);
		final GridData gd_jumlahText = new GridData(SWT.FILL, SWT.CENTER, true, false);
		jumlahText.setLayoutData(gd_jumlahText);

		final Label hargaLabel = new Label(group_1, SWT.NONE);
		hargaLabel.setText("Harga");

		hargaText = new Text(group_1, SWT.BORDER);
		final GridData gd_hargaText = new GridData(SWT.FILL, SWT.CENTER, true, false);
		hargaText.setLayoutData(gd_hargaText);

		final Group group_2 = new Group(this, SWT.NONE);
		group_2.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
		final GridLayout gridLayout_1 = new GridLayout();
		gridLayout_1.numColumns = 4;
		group_2.setLayout(gridLayout_1);

		final Button baruButton = new Button(group_2, SWT.NONE);
		baruButton.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				doTambah();
			}
		});
		final GridData gd_baruButton = new GridData(70, SWT.DEFAULT);
		baruButton.setLayoutData(gd_baruButton);
		baruButton.setText("Tambah");

		final Button simpanButton = new Button(group_2, SWT.NONE);
		simpanButton.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				doUpdate();
			}
		});
		final GridData gd_simpanButton = new GridData(70, SWT.DEFAULT);
		simpanButton.setLayoutData(gd_simpanButton);
		simpanButton.setText("Update");

		final Button hapusButton = new Button(group_2, SWT.NONE);
		hapusButton.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				doDelete();
			}
		});
		final GridData gd_hapusButton = new GridData(70, SWT.DEFAULT);
		hapusButton.setLayoutData(gd_hapusButton);
		hapusButton.setText("Hapus");

		final Button keluarButton = new Button(group_2, SWT.NONE);
		keluarButton.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				dispose();
			}
		});
		final GridData gd_keluarButton = new GridData(SWT.RIGHT, SWT.CENTER, true, false);
		gd_keluarButton.widthHint = 70;
		keluarButton.setLayoutData(gd_keluarButton);
		keluarButton.setText("Keluar");
		//
	}

	protected void doTambah() {
		try {
			PreparedStatement statement = dbUtil.getConnection().prepareStatement("insert into item(kode, nama, jumlah, harga) values(?,?,?,?)");
			statement.setInt(1, Integer.valueOf(kodeText.getText()));
			statement.setString(2, namaText.getText());
			statement.setInt(3, Integer.valueOf(jumlahText.getText()));
			statement.setInt(4, Integer.valueOf(hargaText.getText()));
			statement.execute();
			allItems.add(new Item(Integer.valueOf(kodeText.getText()), namaText.getText(), Integer.valueOf(jumlahText.getText()), Integer.valueOf(hargaText.getText())));
			refreshTable();
		} catch (SQLException e) {
			e.printStackTrace();
			showError(e.getMessage());
		}
		catch (Exception e) {
			showError(e.getMessage());
		}
	}

	protected void doUpdate() {
		try {
			PreparedStatement statement = dbUtil.getConnection().prepareStatement("update item set nama=?, jumlah=?, harga=? where kode = ? ");
			statement.setString(1, namaText.getText());
			statement.setInt(2, Integer.valueOf(jumlahText.getText()));
			statement.setInt(3, Integer.valueOf(hargaText.getText()));
			statement.setInt(4, Integer.valueOf(kodeText.getText()));
			statement.execute();
			Item item = allItems.get(table.getSelectionIndex());
			item.setNama(namaText.getText());
			item.setJumlah(Integer.valueOf(jumlahText.getText()));
			item.setKode(Integer.valueOf(hargaText.getText()));
			refreshTable();
		} catch (SQLException e) {
			e.printStackTrace();
			showError(e.getMessage());
		}
		catch (Exception e) {
			showError(e.getMessage());
		}
	}

	protected void doDelete() {
		try {
			PreparedStatement statement = dbUtil.getConnection().prepareStatement("delete from item where kode=? ");
			statement.setInt(1, Integer.valueOf(kodeText.getText()));
			statement.execute();
			allItems.remove(table.getSelectionIndex());
			refreshTable();
		} catch (SQLException e) {
			e.printStackTrace();
			showError(e.getMessage());
		}
		catch (Exception e) {
			showError(e.getMessage());
		}
	}

	protected void showDetail() {
		int idx = table.getSelectionIndex();
		Item item = allItems.get(idx);
		kodeText.setText(String.valueOf(item.getKode()));
		namaText.setText(item.getNama());
		jumlahText.setText(String.valueOf(item.getJumlah()));
		hargaText.setText(String.valueOf(item.getHarga()));
		
	}
	
	private void showMessage(String message){
		mb = new MessageBox(this, SWT.ICON_ERROR);
		mb.setText("Info");
		mb.setMessage(message);
		mb.open();
	}

	private void showError(String message){
		mb = new MessageBox(this, SWT.ICON_INFORMATION);
		mb.setText("Error");
		mb.setMessage(message);
		mb.open();
	}

	@Override
	protected void checkSubclass() {
		// Disable the check that prevents subclassing of SWT components
	}

	@Override
	public void dispose() {
		dbUtil.closeConnection();
		super.dispose();
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -