내가 가진 코드를 추가 할 수 있지만, 수직는 설정 버튼을 생성 패널을
을 정렬 지금은 어떻게이 패널에의 JLabel을 추가하지만이 새로운 JPanel을 만들 때, 내가 얻을 수있다 싶어 무엇을 코드를 실행하면 오류가 발생하지만 코드가 충돌을주지는 않습니다. 가능하다면 flowlayout에 버튼을 재배치하고 싶습니다.
내 전체 코드 :
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public final class CharSearch extends Box {
int i = 0;
int error = 0;
static JPanel panel;
String original = "Dinosaur";
String secret = new String(new char[original.length()]).replace('\0', '-');
public CharSearch() {
super(BoxLayout.Y_AXIS);
for (char i = 'A'; i <= 'Z'; i++) {
String buttonText = new Character(i).toString();
JButton button = getButton(buttonText);
add(button);
}
JLabel label = new JLabel(secret);
JPanel panel = new JPanel();
panel.add(label);
}
public JButton getButton(final String text) {
final JButton button = new JButton(text);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (original.indexOf(text) != -1) {
JOptionPane.showConfirmDialog(null,
"Your word does contain" + text);
} else {
JOptionPane.showConfirmDialog(null, "There is no" + text);
}
// If you want to do something with the button:
button.setText("Clicked"); // (can access button because it's
// marked as final)
}
});
return button;
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(panel);
frame.setContentPane(new CharSearch());
frame.pack();
frame.setVisible(true);
new CharSearch();
}
});
}
}
와 내가
Exception
가 실행할 때이 내가 오류입니다 : 당신이 정의되지 않은 JPanel의 객체를 추가
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at javax.swing.JFrame.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at org.informatica.com.CharSearch$2.run(CharSearch.java:50)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
에 추가하기 전에 당신이 그것을 인스턴스화되지
panel
전역 변수를 생성 한 동안 UI를 어떻게 보이게 할 것인가? 단순히 'FlowLayout'이 우리의 요구 사항을 이해하는 데 도움이되지 않을 것이라고 말하고 있습니다. – Sujay모든 버튼이 상단에 정렬되어 있어야하고 레이블이 가운데에 있어야하지만 가운데에 놓여 야합니다. –