2010-11-16 76 views
1

我是新來的Java所以多多包涵:的Java Swing/AWT標籤面板事件

我希望窗口/面板/面板的僥倖心理,一旦標籤被點擊/改變大小。

我該怎麼做/實施呢?

我已經成功地在一個按鈕點擊/事件,但我怎麼做一個標籤點擊/事件?

這裏是我的代碼:(對不起任何壞/臃腫/ unnessicary提前代碼)

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.event.ChangeEvent; 
import javax.swing.event.ChangeListener; 

//Class shows how to setup up a tabbed window 
public class GUI implements ActionListener 
{ 
static JFrame aWindow = new JFrame("Project"); 
JTabbedPane myTabs = new JTabbedPane(); 
JPanel loginMainPanel = new JPanel(); 
JPanel displayMainPanel = new JPanel(); 
JPanel editMainPanel = new JPanel(); 
JLabel loginLabel = new JLabel("Username:"); 
JTextField loginField = new JTextField(); 
JLabel loginLabel2 = new JLabel("Password:"); 
JPasswordField loginPass = new JPasswordField(); 
JButton displayButton = new JButton("Press This Button"); 
JButton loginButton = new JButton("Login"); 
JLabel editLabel = new JLabel("Write a story:"); 
JTextArea editArea = new JTextArea(); 
public GUI() 
{ 
Toolkit theKit = aWindow.getToolkit(); 
Dimension wndSize=theKit.getScreenSize(); 
aWindow.setBounds(wndSize.width/3, wndSize.height/3, 200, 200); //set position, then dimensions 
aWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
GridLayout grid = new GridLayout(1,1); 
Container content = aWindow.getContentPane(); 
content.setLayout(grid); 
createLoginPanel(); 
createDisplayPanel(); 
createEditPanel(); 
myTabs.addTab("Login", loginMainPanel); 
myTabs.addTab("Display", displayMainPanel); 
myTabs.addTab("Edit", editMainPanel); 
myTabs.setSelectedIndex(0); 
//myTabs.setEnabledAt(1,false); 
myTabs.setEnabledAt(2, false); 
content.add(myTabs); 
aWindow.setVisible(true); 
} 

public void createLoginPanel() 
{ 
loginMainPanel.setLayout(null); 
loginLabel.setBounds(10, 15, 150, 20); 
loginMainPanel.add(loginLabel); 
loginField.setBounds(10, 35, 150, 20); 
loginMainPanel.add(loginField); 
loginLabel2.setBounds(10, 60, 150, 20); 
loginMainPanel.add(loginLabel2); 

loginPass.setBounds(10, 80, 150, 20); 

loginMainPanel.add(loginPass); 
loginButton.addActionListener(this); 
loginButton.setBounds(50, 110, 80, 20); 
loginMainPanel.add(loginButton); 
} 

public void createDisplayPanel() 
{ 
//Toolkit theKit = aWindow.getToolkit(); 
//Dimension wndSize = theKit.getScreenSize(); 
//aWindow.setBounds(20, 20, 20, 20); //set position, then dimensions 

displayMainPanel.setLayout(null); 
displayButton.addActionListener(this); 
displayButton.setBounds(10, 80, 150, 20); 
displayMainPanel.add(displayButton); 
} 

public void createEditPanel() 
{ 
editMainPanel.setLayout(null); 
editLabel.setBounds(10, 15, 150, 20); 
editMainPanel.add(editLabel); 
editArea.setBounds(10, 65, 150, 50); 
editMainPanel.add(editArea); 
} 

public void actionPerformed(ActionEvent e) 

{ 

if (e.getSource() == loginButton) 
{ 
//System.out.println("Working..."); 
Toolkit theKit = aWindow.getToolkit(); 
Dimension wndSize = theKit.getScreenSize(); 
aWindow.setBounds(wndSize.width/4, wndSize.height/4, 300, 300); 
} 

//Would the event go here? 

} 

public static void main(String[] args) 
{ 
GUI tw1 = new GUI(); 
} 

} 

非常感謝:)

詹姆斯,

回答

2

但我該如何做一個標籤點擊/事件?

使用ChangeListener。

+0

我該如何實施? – 2010-11-16 22:20:48

+0

請參見「如何編寫更改監聽器」(http://download.oracle.com/javase/tutorial/uiswing/events/changelistener.html) – camickr 2010-11-16 22:34:42