Usando o NetBeans IDE 6.7 com Canvas3D Container de J3D
-
11-09-2019 - |
Pergunta
Eu continuo dizendo que isso deve ser simples, e ainda assim eu estou completamente perdido. Deixe-me começar por dizer que eu sou novo no NetBeans IDE, e que eu estou usando-o em caso de necessidade. Eu realmente não sei muito sobre ele ainda.
Eu projetei com sucesso a minha janela principal para a minha candidatura. O lado direito do aplicativo é essencialmente uma grande janela em um espaço tridimensional que visualiza certos transformadas em conjuntos de dados. Tenho pesquisado através da paleta eo gerente paleta e até tentou adicionar o componente Canvas3D à paleta manualmente de um JAR, mas eu ainda não pode obtê-lo.
Eu realmente gostaria de ser capaz de arrastar e soltar este componente em minha aplicação, e intuitivamente, parece possível. Eu estou no Mac OS X; a saída dos meus NetBeans Sobre diz mais.
Produto Versão: NetBeans IDE 6.7 (criação de 200.906.241.340)
Java: 1.5.0_
19; Java HotSpot (TM) Cliente VM 1.5.0_
19-137
Sistema: Mac OS X versão 10.5.7 rodando em i386; MacRoman; en_US (nb)
Userdir: /Users/dremelofdeath/.netbeans/6.7
Obrigado antecipadamente por me ajudar - eu realmente aprecio isso
.Solução
O Canvas3D é um componente pesado que significa que usa um componente de pares nativa para ligar para DirectX ou OpenGL então provavelmente este tipo de componente não está disponível para arrastar e soltar. Embora você poderia tentar estender um JPanel.
Você pode configurar o layout manualmente com bastante facilidade usando um BoderLayout.
MyFrame extends JFrame {
etc...
Container container = getContentPane();
container.setName("main.container");
container.setLayout(new BorderLayout());
container.add(new MyCanvasPanel(), BorderLayout.CENTER);
}
// this could probably be added to the palete
public class MyCanvasPanel extends JPanel {
SimpleUniverse su;
Canvas3D canvas3D;
public MyCanvasPanel() {
canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
add("Center", canvas3D);
su = new SimpleUniverse(canvas3D);
}
}
Outras dicas
guia completo iniciante:
- Adicionar um java.awt.Container ao JFrame. (Escolha Beans \ java.awt.Container). Deixe o nome desse recipiente ser canvasContainer.
-
Adicionar uma variável pública para a classe. (Suponho que o nome da classe é MyJFrame)
pública Canvas3D Canvas3D;
-
A construção da classe quadro é como se segue:
MyJFrame pública () {
initComponents ();
}Editar da seguinte forma:
MyJFrame pública () {
initComponents ();
Canvas3D = new Canvas3D (SimpleUniverse.getPreferredConfiguration ());
canvasContainer.add (Canvas3D, "Centro");
canvas3D.setSize (canvasContainer.getWidth (), canvasContainer.getHeight ());
} -
Adicionar um ouvinte ao recipiente quando é redimensionada: (Muitas vezes, quando a janela é redimensionada)
Escolha o recipiente \ Propriedades \ Eventos \ componentResized \ canvasContainerComponentResized
Digite o seguinte código:if (Canvas3D! = Null)
canvas3D.setSize (canvasContainer.getWidth (), canvasContainer.getHeight ());