मेरे पास स्विंग में स्टॉप घड़ी के लिए यह कार्य कोड है। मैं दूसरी लाइन पर केंद्रित Time Remaining 300 seconds
लेबल रखना चाहता हूं। यहाँ मेरा कोड है। Jfrabel स्विंग में JLabel को कैसे केन्द्रित करें?
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;
public class TimerGUI extends JPanel {
JLabel promptLabel, timerLabel;
final int count = 30;
JButton start;
JButton end;
Timer timer;
public TimerGUI() {
setLayout(new GridLayout(0,2));
start = new JButton("Start");
add(start);
Event e = new Event();
start.addActionListener(e);
end = new JButton("End");
end.setEnabled(false);
add(end);
end.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
timer.stop();
start.setEnabled(true);
end.setEnabled(false);
timerLabel.setText("Time Remaining " + count + " seconds");
}
});
timerLabel = new JLabel("Time Remaining 300 seconds");
add(timerLabel);
}
private class Event implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
start.setEnabled(false);
end.setEnabled(true);
timerLabel.setText("Time Remaining " + count + " seconds");
TimeClass tc = new TimeClass(count);
timer = new Timer(1000, tc);
timer.start();
}
}
private class TimeClass implements ActionListener {
int counter;
public TimeClass(int count) {
this.counter = count;
}
@Override
public void actionPerformed(ActionEvent e) {
counter--;
if (counter <= 5) {
Toolkit.getDefaultToolkit().beep();
}
if (counter >= 1) {
timerLabel.setText("Time Remaining " + counter + " seconds");
} else {
timer.stop();
timerLabel.setText("game over");
}
}
}
public static void main(String[] args) {
JFrame myframe = new JFrame();
TimerGUI timer = new TimerGUI();
// myframe.getContentPane().add(content,BorderLayout.CENTER);
myframe.getContentPane().add(timer, BorderLayout.CENTER);
myframe.setTitle("Hangman Game");
myframe.pack();
myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myframe.setLocationRelativeTo(null);
myframe.setVisible(true);
}
}
संपादित करें: यह करने के लिए बदल रहा है।
timerLabel = new JLabel("Time Remaining 300 seconds");
add(timerLabel,SwingConstants.CENTER);
अलग ouput देता है, कृपया छवि
@ user1988876: फिर लेआउट प्रबंधकों के बेहतर संयोजन का उपयोग करें। आपका ग्रिडलाउट केंद्र केंद्रित को रोक देगा। इसके बजाय अपने जेपीनल एक सीमावर्ती उपयोग का उपयोग करें। जेननेल घोंसला पर विचार करें। –
मैंने 'बॉर्डरलाउट' के साथ शुरुआत की, लेकिन यह कुल spoiler –
@ user1988876: '" कुल spoiler "' ??? इससे मुझे कुछ गलत संकेत मिलता है कि इसमें क्या गलत है। दोबारा, आप संभवतः अपने जेपीनल को घोंसले नहीं कर रहे हैं और इस प्रकार लेआउट घोंसले कर रहे हैं। –