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

📄 panelfactory.java

📁 本项目是用JAVA3D开发的一款图形界面的3D漫游的类似引擎.至所以这么说.是因为它的部分功能还不完全.说它是引擎是因为它可以完全脱离模型文件.本引擎实现了虚拟漫游,碰撞检测,动态添加模型,以及部分纹
💻 JAVA
字号:
package cn.bz.util.swing;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 * 本程序中所使用的所有PANEL将都出现在此.
 * 
 * @author 魏丽平
 * 
 */
public class PanelFactory {

	private JPanel 灯光;

	private JPanel 雾效;

	private JPanel 声音;

	PanelFactory() {

		灯光 = new JPanel();

		雾效 = new JPanel();

		声音 = new JPanel();

		init();
	}

	// =============================================
	public void init() {
		// 在此封装有关各种灯光的操作.如环境光,漫反射等
		灯光.setLayout(new BorderLayout());

		灯光.add(lightPanel());

		// -----------------------------------
		雾效.add(new JLabel("fog"));

		// -----------------------------------
		声音.add(new JLabel("sound"));
	}

	// =============================================
	public JPanel get灯光() {
		return 灯光;
	}

	public JPanel get声音() {
		return 声音;
	}

	public JPanel get雾效() {
		return 雾效;
	}

	Box lightPanel() {
		Box panel = new Box(BoxLayout.Y_AXIS);// 创建一个沿指定坐标轴显示其组件的 Box。

		// add the ambient light checkbox to the panel
		JCheckBox ambientCheckBox = new JCheckBox("Ambient Light");
		ambientCheckBox.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				JCheckBox checkbox = (JCheckBox) e.getSource();
				// lightAmbient.setEnable(checkbox.isSelected());
			}
		});
		ambientCheckBox.setSelected(true);
		panel.add(new LeftAlignComponent(ambientCheckBox));

		String[] lightTypeValues = { "None", "Directional", "Positional",
				"Spot" };
		IntChooser lightTypeChooser = new IntChooser("Light Type:",
				lightTypeValues);
		/*
		 * lightTypeChooser.addIntListener(new IntListener() { public void
		 * intChanged(IntEvent event) { int value = event.getValue(); switch
		 * (value) { case 0: lightDirectional.setEnable(false);
		 * lightPoint.setEnable(false); lightSpot.setEnable(false); break; case
		 * 1: lightDirectional.setEnable(true); lightPoint.setEnable(false);
		 * lightSpot.setEnable(false); break; case 2:
		 * lightDirectional.setEnable(false); lightPoint.setEnable(true);
		 * lightSpot.setEnable(false); break; case 3:
		 * lightDirectional.setEnable(false);
		 * lightPoint.setEnable(false);lightSpot.setEnable(true); break; } } });
		 */
		lightTypeChooser.setValueByName("Directional");
		panel.add(lightTypeChooser);
		return panel;
	}

}

⌨️ 快捷键说明

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