本文介紹了正在編寫Main方法問(wèn)題。Java圖形用戶界面列表的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
我想不出如何為Main方法編寫代碼,以便能夠?qū)⒂脩魧?duì)月份的選擇存儲(chǔ)在字符串[]StringValues中。這是我的類MultipleIntervalSelection:
package february;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MultipleIntervalSelection extends JFrame
{
private JList monthList; // List of months
private JList selectedMonthList; // Selected months
private JButton button; // To get selected items
private JPanel monthPanel; // To hold components
private JPanel selectedMonthPanel; // To hold components
private JPanel buttonPanel; // To hold the button
// The following array holds the values that will be
// displayed in the monthList list component.
private String[] months = { "January", "February", "March",
"April", "May", "June", "July", "August",
"September", "October", "November", "December" };
/**
* Constructor
*/
public MultipleIntervalSelection()
{
// Call the JFrame constructor.
super("List Demo");
// Specify an action for the close button.
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Create a BorderLayout manager for the content pane.
setLayout(new BorderLayout());
// Build the panels.
buildMonthPanel();
buildSelectedMonthsPanel();
buildButtonPanel();
// Add the panels to the content pane.
add(monthPanel, BorderLayout.NORTH);
add(selectedMonthPanel, BorderLayout.CENTER);
add(buttonPanel, BorderLayout.SOUTH);
// Pack and display the window.
pack();
setVisible(true);
}
/**
* The buildMonthPanel method adds a list containing the
* names of the months to a panel.
*/
private void buildMonthPanel()
{
// Create a panel to hold the list.
monthPanel = new JPanel();
// Create the list.
monthList = new JList(months);
// Set the list to multiple interval selection mode.
monthList.setSelectionMode(
ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
// Set the number of visible rows to 6.
monthList.setVisibleRowCount(6);
// Add the list to a scroll pane.
JScrollPane monthListScrollPane =
new JScrollPane(monthList);
// Add the scroll pane to the panel.
monthPanel.add(monthListScrollPane);
}
/**
* The buildSelectedMonthsPanel method adds a list to
* a panel. This will hold the selected months.
*/
private void buildSelectedMonthsPanel()
{
// Create a panel to hold the list.
selectedMonthPanel = new JPanel();
// Create the list.
selectedMonthList = new JList();
// Set the number of visible rows to 6.
selectedMonthList.setVisibleRowCount(6);
// Add the list to a scroll pane.
JScrollPane selectedMonthScrollPane =
new JScrollPane(selectedMonthList);
// Add the scroll pane to the panel.
selectedMonthPanel.add(selectedMonthScrollPane);
}
/**
* The buildButtonPanel method adds a button to a panel.
*/
private void buildButtonPanel()
{
// Create a panel to hold the button.
buttonPanel = new JPanel();
// Create the button.
button = new JButton("Get Selections");
// Add an action listener to the button.
button.addActionListener(new ButtonListener());
// Add the button to the panel.
buttonPanel.add(button);
}
/**
* Private inner class that handles the event when
* the user clicks the "Get Selections" button.
*/
private class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
// Get all the items that were selected.
Object[] selections = monthList.getSelectedValues();
// Display the items in selectedMonthList.
selectedMonthList.setListData(selections);
}
private void getValues()
{
Object months;
months = monthList.getSelectedValues();
return months;
}
}
}
以下是我的主類:
package february;
public class Alert {
public static void main(String[] args) {
MultipleIntervalSelection monthsInterval = new MultipleIntervalSelection();
monthsInterval.setVisible(true);
Object months = monthsInterval.getValues();
String[] stringValues = (String[])months;
System.out.println(stringValues);
}
}
將執(zhí)行Main方法,但在控制臺(tái)中沒(méi)有結(jié)果。我需要將用戶選擇的月份的名稱(字符串值)保存在我的字符串[]StringValues中。請(qǐng)大家?guī)蛶臀?/p>
推薦答案
JDialog很有幫助,但您也可以使用JFrame。以下是我為您編寫的代碼:
@SuppressWarnings("serial")
public class Window extends JFrame {
// Fields
// specify here all private fields that you want in you application like JLabels etc...
private JList monthsList;
private String[] months = {"January", "February", "March" , "April", "May", "June", "July", "August", "September", "October", "November", "December"};
// no args constructor
public Window() {
createUI();
}
@SuppressWarnings({ "unchecked", "rawtypes" })
private void createUI() {
Container contentPane = getContentPane();
contentPane.setLayout(null);
// Months Selection
monthList = new JList(months);
monthList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
monthList.setVisibleRowCount(5);
monthList.setBounds(400, 16, 100, 50);
JScrollPane monthScroll = new JScrollPane(monthsList);
monthScroll.setBounds(180, 16, 135, 400);
contentPane.add(monthsScroll);
// set the content Pane window
setTitle("Months");
setSize(100,100);
setVisible(true);
}
public void buttonActionPerformed(ActionEvent event) {
this.buttonPressed = true;
@SuppressWarnings("deprecation")
Object[] monthObjects = monthsList.getSelectedValues();
this.monthsSelected = Arrays.copyOf(monthObjects,monthObjects.length, String[].class);
}
// Method to diagnose Start button clicked to use in the Main
public boolean VerifyButtonPressed() {
return buttonPressed == true ? true : false;
}
// Methods to set the user specified value to the CurrentInput class fields
public String[] getMonthsSelected() {
return monthsSelected;
}
}
還要?jiǎng)?chuàng)建一個(gè)將使用”公共布爾值VerifyButtonPressed()”的主類。這是在沒(méi)有JDialog的情況下完成相同工作的最簡(jiǎn)單方法。
這篇關(guān)于正在編寫Main方法問(wèn)題。Java圖形用戶界面列表的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,