Java GUI колеру Dont нагрузкі

Я зрабіў графічны інтэрфейс для маёй праграмы і выкарыстоўваць

UIManager.put("Button.background", new Color(0,0,0));   
UIManager.put("JButton.background", new Color(0,0,0));

зрабіць кнопкі выглядаюць чорнымі. На жаль, гэта не працуе часам. Без змены кода, ён будзе працаваць, калі я запускаю яго адзін раз і не будзе працаваць у іншы раз.

Наступная выява тыя ж кнопкі на той жа праграме, пасля таго, як я некалькі разоў бег яго. Гэта адбываецца прыкладна 1 у 4 разы я запусціць праграму.

Buttons (left button is correct and the right one is what sometimes happens while running)

Акрамя таго, іншыя рэчы, як

UIManager.put("control", new Color(15,0,0));

правільна загружаюцца. Ніколі не было праблем з ім, і ён будзе загружаны ў той жа час і той жа фармат.

EDIT: Here's a sample code where the button colors aren't loading at all while the background and other things are. They are loaded the same exact way and there are no compilation or run errors.

import java.awt.*;
import javax.swing.*;
import javax.swing.UIManager.*;

public class gtst

{

public static void main(String[] args) throws Exception
{

    UIManager.put("Button.background", new Color(1,1,1));   
    UIManager.put("JButton.background", new Color(1,1,1));
    UIManager.put("control", new Color(0,0,0)); 
    UIManager.put("text", new Color(255,220,0));

    Frame batFrame = new JFrame("nananananna Batman!");

    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels())
    {
        if ("Nimbus".equals(info.getName())) {
            UIManager.setLookAndFeel(info.getClassName());
            break;
        }
    }

    String username = JOptionPane.showInputDialog(batFrame, "Enter something...:");
    }
}
1
так я не рабіў ужо? Код прама там ... і я апісаў праблему, усё, што вы ведаеце, што я ведаю ... :( Я пачатковец, так што я не ўпэўнены на 100%, што з'яўляецца прычынай, каб гэта адбылося.
дададзена аўтар Cody, крыніца
Аб божа, я не ведаю, маё правае і левае
дададзена аўтар Cody, крыніца
Я дадаў прыклад кода, які нават не загружае кнопкі колеру. Гэта той жа самы адзін, які загружае іх каля паловы часу (я на самай справе падлічаныя) на маёй праграме: S. Вы можаце бачыць, што ён загружае фон і іншыя рэчы, якія напісаны такім жа чынам.
дададзена аўтар Cody, крыніца
дакладна тое ж самае адбываецца са мной з гэтым кодам, але ідэнтычна іншым адным ім, выкарыстоўваючы (акрамя таго, што адзін значна значна больш, так як ёсць і іншыя часткі да яго). І ў тым, што адзін толькі ён змяняе колер палову часу: S Я паняцця не маю, чаму яго рабіць гэта. Я выкарыстаў правільныя параметры, размешчаныя тут: download.oracle.com/javase/падручнік/uiswing/LookAndFeel/& hellip; ... Я паняцця не маю, што праблема ёсць. Ім з дапамогай вокнаў (7 64-біт)
дададзена аўтар Cody, крыніца
Кожны раз, калі ў вас ёсць «выпадковыя» праблемы, пераканайцеся, што ваш код GUI выконваецца на падзею дыспетчарскай тэмы, выкарыстоўваючы SwingUtilities.invokeLater (...).
дададзена аўтар camickr, крыніца
Я пабег гэта на маім MacBook; кнопкі ніколі змяніць колер, і я падазраю, што гэта дызайн. Якая платформа вы?
дададзена аўтар Ernest Friedman-Hill, крыніца
<�Я> "усё, што вы ведаеце, што я ведаю .." У адным адказе было сказана, <�я> "пераканайцеся, што ваш GUI код .." Калі б ты адправіў
дададзена аўтар Andrew Thompson, крыніца
Вам трэба напісаць невялікі, лаканічны працоўны прыклад кода, які дэманструе праблему і размясціць яго тут. Часта пры гэтым вы нават вырашыць ўласную праблему па шляху.
дададзена аўтар Brian Roach, крыніца
Як правільны адзін правільны, улічваючы, што вы хочаце, каб кнопкі, каб быць чорным колерам (0, 0, 0)?
дададзена аўтар NickLH, крыніца

3 адказы

Пасля некалькіх дзён без прыпынку спроб і памылак, я зразумеў, што, мабыць, у маёй праграме злучэнне MySQL выклікае праблемы. Калі злучэнне MySQL было ініцыявана ў пачатку праграмы і змены кветак былі занадта гэтая прычынай нейкае праблемы (магчыма адставанне?) І колер не заўсёды будзе загружацца. Можа быць, гэта праблема з драйверам MySQL ці нешта яшчэ, не ўпэўнены, але выправіць гэта я толькі што зрабіў гэта падлучыцца да MySQL, калі гэта неабходна злучэнне, а не ў пачатку праграмы.

Я не ведаю, чаму колеру не спрацаваў наогул у прыкладзе я прадставіў.

0
дададзена

Паспрабуйце выкарыстоўваць наступны код пасля таго, як вы ўнеслі змены ў UIManager:

SwingUtilities.updateComponentTreeUI();
0
дададзена
Я не думаю, што працуе :( атрымаў гэтыя 4 памылкі :. <�Код> фон не з'яўляецца публічнай у java.awt.Component, не могуць быць даступныя з па-за пакета (для Button.background /JButton.background) updateComponentTreeUI (java.awt.Component) у javax.swing.SwingUtilities не можа быць ужыты да (java.awt.Color) (для updateComponentTreeUI для абедзвюх кнопак) :(
дададзена аўтар Cody, крыніца
О, не, я раблю нешта яшчэ, добра, што ён кампілюецца і працуе без памылак, але ён па-ранейшаму аленевая скура нагрузкі колеру :(
дададзена аўтар Cody, крыніца
Такім чынам, вы зрабілі SwingUtilities.updateComponentTreeUI (batFrame); Проста, перш чым паказаць OptionPane>
дададзена аўтар Richard Walton, крыніца

Як я звычайна раблю гэта я зрабіць кнопку ў выглядзе асобнай зменнай JButton, а затым дадаць, што ў маёй панэлі. Затым, каб усталяваць колер кнопкі я выкарыстоўваю код:

myButton.setBackground(Color.BLACK);

і што звычайна робіць трук.

0
дададзена
й, але яго выкарыстанне папярэдне зрабілі кадр і робіць кожную рэч асобна будзе шмат кода і трохі неэфектыўныя :(
дададзена аўтар Cody, крыніца
Аб вы карыстаецеся NetBeans, каб зрабіць гэта? Калі так, то вы можаце проста пайсці ў уласцівасцях вашай кнопкі і змяніць гэта.
дададзена аўтар Globmont, крыніца