Olá e tenha um bom dia todos! Minha pergunta é curta e simples. Aqui está o meu código:
javax.swing. de importação;
java.awt. de importação;
java.awt.event. de importação;
java.util. de importação;
public class windowFrame implementa ActionListener
{
privada JTextField firstField;
privada JTextField secondField;
privada JTextField thirdField;
Private JButton testButton;
Private JButton testButton2;
Private JButton testButton3;
public void buildWindow()
{
JFrame frame = novo JFrame();
Frame.setForeground(Color.White);
Frame.setDefaultCloseOperation (quadro.EXIT_ON_CLOSE);
Frame.setLocation (novo ponto (10, 50));
Frame.SetSize (nova dimensão (680, 620));
Frame.setTitle ("API gráfica");
JPanel Leste = novo JPanel (nova GridLayout(3,1));
East.Add (new JLabel ("teste de desenho de linha (colocar números de 4):"));
firstField = novo JTextField(10);
East.Add(firstField);
testButton = novo JButton("Test");
testButton.addActionListener(this);
East.Add(testButton);
JPanel east1 = novo JPanel (nova GridLayout(3,1));
east1.Add (new JLabel ("teste para desenhar um quadrado (inserir o ponto de partida e largura e comprimento):"));
secondField = novo JTextField(10);
east1.Add(secondField);
testButton2 = novo JButton("Test");
testButton2.addActionListener(this);
east1.Add(testButton2);
JPanel east2 = novo JPanel (nova GridLayout(3,1));
east2.Add (new JLabel ("digite seu nome2:"));
thirdField = novo JTextField(10);
east2.Add(thirdField);
testButton3 = novo JButton("Test");
testButton3.addActionListener(this);
east2.Add(testButton3);
JPanel norte = novo JPanel (nova BorderLayout());
North.Add (leste, BorderLayout.NORTH);
North.Add (east1, BorderLayout.CENTER);
North.Add (east2, BorderLayout.SOUTH);
JPanel north1 = novo JPanel (nova BorderLayout());
north1.Add (Norte, BorderLayout.EAST);
JPanel north2 = novo JPanel (nova FlowLayout());
north2.Add(north1);
Frame.Add (north2, BorderLayout.EAST);
/ / frame.pack(); //Trims afastado as peças extras do window(use carefully)
Frame.setVisible(true);
}
public void actionPerformed (ActionEvent event)
{
int [] array = novo int [4];
int i = 0;
String firstFieldtxt = firstField.getText();
Scanner entrada = novo Scanner(firstFieldtxt);
while(Input.hasNext())
{
matriz [i] = input.nextInt();
i + +;
}
aLine linha = novo aLine();
line.drawaLine (matriz [0], matriz [1], matriz [2], array[3]);
}
}
Eu tenho uma classe de meu próprio que faz a mesma coisa que g.drawLine(x,y,i,i); (que já existe em java).
O que eu quero: uma janela que tem no lado direito os botões e campos de texto e espaço em branco no lado esquerdo. Depois de inserir os 4 coords no primeiro campo e apertar o botão, o código obtém a Cadeia de caracteres, armazena os números em uma matriz e, em seguida, usa-los para desenhar a linha. Meus problemas são: como faço para colocar diferentes ouvintes nos botões (Im não tem certeza eu formulado o direito de pergunta...). Então o que eu quero é quando você clicar no botão 2, para fazer uma coisa completamente diferente (desenhe um retângulo usando outra classe personalizada de minas). Também, minha classe personalizada é bondoso estúpido cuz aquilo pops acima outro quadro: |. Aqui é a classe para o drawaLine:
java.awt. de importação;
javax.swing. de importação;
public class aLine extends JPanel {
Painel de DrawingPanel = novo DrawingPanel(400,400);
De elementos gráficos g = panel.getGraphics();
public void paintComponent (Graphics g) {
Super.paintComponent(g); / / chamada versão do JPanel
this.drawaLine (largura, largura, largura, largura);
}
public void drawaLine (int x 1, int y1, int x 2, int y2)
{
int dx = Math.abs(x2-x1);
int dy = Math.abs(y2-y1);
int sx, sy, err, e2, lineEnd = 0;
se (x 1<x2)></x2)>
SX = 1;
outra pessoa
SX = -1;
se (y1<y2)></y2)>
Sy = 1;
outra pessoa
Sy = -1;
Err = dx-dy;
while(lineEnd!=1)
{
g.drawRect (x 1, y1, 1, 1);
se (x 1 = = 2 x && y1 = = y2)
lineEnd = 1;
E2 = 2 err;
if(E2>-dy)
{
Err-= dy;
x 1 + = sx;
}
se (e2<dx)></dx)>
{
Err + = dx;
Y1 + = sy;
}
}
}
}
Você pode me ajudar com dois códigos?
OBRIGADO CARGAS SHAWN!!! Ele é perfeito e muito bem explicada: m. poderia você me deixe seu id do yahoo apenas no caso eu tenho mais perguntas: S? Prometo que não vai incomodá-lo muito xD.